MySQL远程连接 备份还原

连接远程数据库

mysql -h 数据库地址 -P 端口号 -u 用户名 -p

mysql -h 127.0.0.1 -P 3307 -uroot -p

备份数据库, 热备份

mysqldump -h 127.0.0.1 -u root -p bak_sql_name > sql_bak.sql

还原数据库

方式1

mysql -h 数据库地址 -u 用户名 -p -P 数据库端口号 要还原到的数据库< 备份的数据库

mysql -h 10.6.208.183 -u test2 -p 123  -P 3310 test.sql< test.sql

方法2

1.登录MySQL

mysql -u root -p 登录密码

2.导入数据

use 要还原数据库的名字;
source 数据库的备份文件;
exit;

备份脚本

BACKUP_PATH=/opt/sql_bak
MYSQL_DUMP=/usr/bin/mysqldump
BACKUP_TIME=$(date +%Y%m%d.%H%M)
BACKUP_DB="test_sql"
DB_USER="root"
DB_PAWD="test_password"
DB_PATH="localhost"

mkdir -p ${BACKUP_PATH}

mysqldump -h${DB_PATH}  -u${DB_USER} -p${DB_PAWD} ${BACKUP_DB} > ${BACKUP_PATH}/${BACKUP_TIME}.sql
if [ $? -ne 0  ];then
    echo "${BACKUP_TIME} mysqldump error " > ${BACKUP_PATH}/${BACKUP_TIME}.log
    exit 1
fi

#delete 3 days file
find ${BACKUP_PATH} -name "*.sql" -mtime +3 -exec rm -rfv {} \;

BACKUP_PATH: 备份目录
BACKUP_TIME:备份日期
BACKUP_DB:要备份的数据库名字
DB_USER:数据库用户名
DB_PAWD:数据库密码
DB_PATH:数据库地址

添加到linux定时任务中

crontab -e #编辑执行计划脚本

添加以下内容 并保存退出

# 每天每小时执行一次备份脚本
0 */1 * * *  /opt/backup/<your_backup_script>.sh

crontab说明

# cat /etc/crontab 
SHELL=/bin/bash
PATH=/sbin:/bin:/usr/sbin:/usr/bin
MAILTO=root
HOME=/
 
# For details see man 4 crontabs
 
# Example of job definition:
# .---------------- minute (0 - 59)
# |  .------------- hour (0 - 23)
# |  |  .---------- day of month (1 - 31)
# |  |  |  .------- month (1 - 12) OR jan,feb,mar,apr ...
# |  |  |  |  .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# |  |  |  |  |
# *  *  *  *  * user-name command to be executed
  • user-name 部分,如果需要以其他用户调度,则可以指定,否则不能指定,比如 root 用户就不能指定 root,否则有调度日志,但是没有实际执行。

对sql文件压缩处理

dump出来的sql文件有可能很大,我们也可以开启 gzip 压缩,一般来说可以实现10倍压缩比例:也就是讲输出到文件的内容通过管道操作符让 gzip 程序处理一遍.

/usr/bin/mysqldump  -u root -p mypassseword sql_name | gzip > /opt/sql_bak/sql.dump_`date +%Y%m%d_%H%M%S`.sql.gz
    原文作者:cscjoke
    原文地址: https://www.jianshu.com/p/be53f1f515f9
    本文转自网络文章,转载此文章仅为分享知识,如有侵权,请联系博主进行删除。
点赞