具体操作步骤如下:

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