linux mysql 备份恢复

1.创建备份shell文件 beifentest.sh

#备份存放位置,根据自己实际随便更改
BACKUP=/home/mysqlbeifen
#当前时间
DATETIME=$(date +%Y_%m_%d_%H_%M_%S)
echo "===备份开始==="
#找到自己mysql安装目录下的bin目录中mysqldump的绝对路径
DUMP=/usr/local/mysql/bin/mysqldump
#数据库地址
HOST=192.168.0.2
#数据库端口号
PORT=3306
#数据库用户名
DB_USER=root
#数据库密码
DB_PW=123456
#备份数据库名称
DATABASE=test

#备份目录没有该目录时创建
[ ! -d "${BACKUP}/$DATABASE" ] && mkdir -p "${BACKUP}/$DATABASE"
 
 #备份并压缩
$DUMP -u${DB_USER} -p${DB_PW} -h${HOST} -P${PORT} -q -R --databases $DATABASE | gzip > ${BACKUP}/$DATABASE/$DATETIME.sql.gz
 echo "备份文件存放于${BACKUP}/$DATABASE/$DATETIME.sql.gz"

#删除7天前备份的数据
#-mtime 当前系统时间 + 7天 找到$BACKUP/$DATABASE目录下的7天前得以 .sql.gz结尾的文件删除
find $BACKUP/$DATABASE -mtime +7 -name "*.sql.gz" -exec rm -rf {} \;
echo "===备份结束==="

2.赋予执行权限

chmod +x beifentest.sh

3.恢复删除的数据库,测试备份

在数据库中创建一个 test数据库 新建几张表,插入几条数据让后执行shell文件

./beifentest.sh

执行完后你的备份目录里会有个压缩文件 说明备份成功,可以把备份文件下载到本地在本地数据库运行解压后的sql文件,如果建立了库和表以及数据,则备份完成。

把刚建立的test数据库删除,然后在shell连接工具中 登录mysql,然后导入sql,此时的sql文件 是解压后sql文件:tar -zvxf 2022-02-19.sql.gz

mysql>source /home/mysqlbeifen/test/2022-02-19.sql #导入sql
mysql>show databases;

导入后再次查看数据库 被删除的test恢复完成

在做本地导入测试时,通过Navicat工具导入sql文件时 运行时出错了,只导入了不分数据

错误 :

[Err] 1046 - No database selected

[Err] 1231 - Variable 'foreign_key_checks' can't be set to the value of 'NULL'

等等报了一些错误

解决 把上面第二个选项的√去掉 就是把每个运行中运行多重查询去掉勾选,如下

 再次运行就OK了

4.定时备份

添加定时任务 编辑crontab 

vim /etc/crontab

 每天夜里3点执行备份 

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值