每天定时备份MySQL数据库

2014-11-24 18:53:16 · 作者: · 浏览: 0

备份方式使用mysqldump + crond


建立数据库备份的sh文件,如/root/sbin/db-backup.sh


DATE=`date +%Y-%m-%d`


/usr/bin/mysqldump -uroot -p123456 mydatabase > /root/backup/mysql-backup.sql.$DATE


内容为备份数据库mydatabase中的全部表到mysql-backup.sql.$DATE文件中,其中$DATE为根据命令的执行时间动态获取的日期


如果要备份mysql的全部数据库则使用


/usr/bin/mysqldump -uroot -p123456 --all-databases > /root/backup/mysql-backup.sql.$DATE


如果数据库中的表包含二进制字段如blod,则必须添加hex-blod的参数,如


/usr/bin/mysqldump -uroot -pqaywsx123 --hex-blod --all-databases > /root/dbbak/winsmedia.sql.$DATE


添加到crond中


编辑 /etc/crontab


最后一行添加 30 23 * * * root /root/sbin/db-backup.sh


表示每天的晚上23点30 开始执行备份命令


重启加载crond服务 service crond reload


注:备份的mysql-backup.sql.$DATE 文件内容编码为utf8,所以要保证数据库的编码也是utf8否则可能会出现中文乱码。


或者添加一个 --default-charset的参数,具体可参考mysqldump命令帮助说明