MySQL之定时备份及还原

本文介绍了一次因误操作导致MySQL数据库部分数据丢失后的备份与恢复经验。详细记录了在Linux环境下使用mysqldump工具备份数据库的方法,包括备份表、数据、存储过程等,并提供了在Windows环境下还原备份数据的步骤。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

  最近update 自动化测试数据库的某个表的数据(一些修改其他数据库的SQL)时,发现where条件还漏了一些(400+条SQL就这样被误操作了)。。。而且之前没有对自动化测试的数据库进行备份。。。。
  简单记录下这次的备份操作。。
 
要备份的数据库部署在Linux上:
1.切换到安装MySQL(不记得的话,可以用whereis mysql查找)的bin目录:
2.使用bin目录下的mysqldump工具进行数据库备份:
1)备份表和数据:
./mysqldump -h数据库所在ip -uroot -p密码 -P3306 库名 >/root/Desktop/MySQLbackup/backdata.sql

2)备份存储过程和函数:

./mysqldump -h数据库所在ip -uroot -p密码 -P3306 -R -ndt --triggers=false 库名>/root/Desktop/MySQLbackup/backprocedure.sql

 注:

1)还原存储过程时,会报错

故备份存储过程时,加上--triggers=false

 

还原备份的数据(以Windows为例):
1.同样切换到安装MySQL的bin目录下:
cd C:\Program Files\MySQL\MySQL Server 5.7\bin

2.还原数据(还原表、数据及存储过程的命令一样,只需修改要备份好的SQL文件)

mysql 库名 --default-character-set=utf8 -u 账号 -p密码<G:\备份SQL路径\backdata.sql

注:

1)因为还原时报错 
,所以加了--default-character-set=utf8 

添加定时任务:

 

# 备份前把前一天备份的数据移到另一个目录
30 17 * * * mkdir /root/Desktop/MySQLbackup1;mv /root/Desktop/MySQLbackup/*.sql /root/Desktop/MySQLbackup1

# 备份数据
20 18 * * * /usr/java/mysql/bin/mysqldump -h要备份数据ip -uroot -p数据库密码. 要备份的库 > /root/Desktop/MySQLbackup/backdata$(date +"\%Y\%m\%d").sql

# 备份存储过程
20 18 * * * /usr/java/mysql/bin/mysqldump -h要备份数据ip -uroot -p数据库密码. -R -ndt --triggers=false 要备份的库> /root/Desktop/MySQLbackup/backpro$(date +"\%Y\%m\%d").sql

# 检查当天是否备份成功,并删除前一天数据的脚本
30 19 * * * /root/delLastBacSQL.sh 
 
# delLastBacSQL.sh的具体内容:

backdata=/root/Desktop/MySQLbackup/backdata$(date +"%Y%m%d").sql
backpro=/root/Desktop/MySQLbackup/backpro$(date +"%Y%m%d").sql
if [[ -e $backdata && -e $backpro ]]
        then `rm -rf /root/Desktop/MySQLbackup1`
        echo success
else
        echo fail
fi  

  

参考资料:
https://www.2cto.com/database/201211/168571.html
https://www.jianshu.com/p/984e876706b1

 

转载于:https://www.cnblogs.com/minerrr/p/9316985.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值