Skip to content

MySQL定时备份

方跃明 2019-05-12

相关软件

Windows下需要用到gzip压缩软件,当然也可用zip、7z、rar等软件代替。 gzip安装完成后,方便起见,请将gzip加入Windows的PATH环境变量。

Windows

编写mysql-backup.bat

powershell
rem 删除一周前的备份
forfiles /p "D:\Backup\databasename" /d -7 /c "cmd /c del /f @path"
rem 按日期命名备份并压缩
mysqldump -hhostname -uusername -ppassword --databases databasename | gzip > D:\Backup\databasename\databasename-%date:~0,10%.sql.gz

将mysql-backup.bat加入计划任务

Linux

修改MySQL配置

shell
vi /etc/my.cnf
ini
# 加入 mysqldump 相关配置
[mysqldump]
user=user
password=password

编写备份脚本

shell
#!/bin/bash
# 定义目录
dir=/path/to/backup/mysql/yourdatabase
# 删除一周前的备份
find ${dir} -ctime +7 -type f | xargs rm -rf
# 每日备份
rq=`date +%Y%m%d`
mysqldump --databases yourdatabase | gzip > ${dir}/yourdatabase-${rq}.sql.gz

修改文件属性为可执行

shell
chmod +x /path/to/backmysql.sh

添加到crontab

# mysql-backup.cron
# 每天3点钟执行备份
0 3 * * * bash /path/to/backmysql.sh
shell
crontab mysql-backup.cron
crontab -l
# 0 3 * * * bash /path/to/backmysql.sh
MySQL
DevOps
Shell