具体操作步骤如下:
1.建备份文件夹:
mkdir /usr/db_backup
2.建脚本文件:
cd /usr/db_backup touch autobackupmysql.sh chmod 777 autobackupmysql.sh
3.打开文件
vi autobackupmysql.sh
4.在脚本中加入如下内容:(一般这种写法都会报错,主要原因是MySQL安全机制不允许脚本上直接暴露密码,下面附有解决方法)
filename=`date +%Y%m%d` /usr/local/mysql/bin/mysqldump -uroot -ppass yourDatabaseName > /usr/db_backup/$filename.sql
5.添加如下内容: 每天早上7点运行此文件,对数据库进行备份
00 07 * * * source /usr/db_backup/autobackupmysql.sh
6.也可手动执行如下命令,手动备份
./autobackupmysql.sh
恢复备份
1、建脚本文件:
cd /usr/db_backup touch autorecovermysql.sh chmod 777 autorecovermysql.sh
2、在脚本中加入如下内容,test_zbp是数据库名称,此处省略用户名和密码,需要在my.cnf配置[mysql],也可以不省略,就无需配置my.cnf,但是会报警告,我有强迫症,受不了
filename=`date +%Y%m%d` mysql test_zbp < /usr/db_backup/$filename.sql
3、my.cnf配置
[mysql] user=root password=root
4、添加定时任务,时间需要在备份完成之后
00 08 * * * source /usr/db_backup/autobackupmysql.sh
常见错误:
mysql: [Warning] Using a password on the command line interface can be insecure
原因:命令行上使用密码不安全
解决:找到数据库my.cnf配置文件,在[mysqldump]下增加如下代码,没有mysqldump就加一个
[mysqldump] user=root password=root
脚本文件改为:
filename=`date +%Y%m%d` /usr/local/mysql/bin/mysqldump yourDatabaseName > /usr/db_backup/$filename.sql