1.创建备份文件
mkdir /var/lib/mysqlbackup
cd /var/lib/mysqlbackup
2.:编写备份脚本代码: vi dbbackup.sh
粘帖以下代码,务必更改其中的username,password和dbname。
代码:
#!/bin/sh
mysqldump -uroot -p123456 ssc | gzip > /var/lib/mysqlbackup/dbname`date +%Y-%m-%d_%H%M%S`.sql.gz
cd /var/lib/mysqlbackup
rm -rf `find . -name '*.sql.gz' -mtime 10` #删除10天前的备份文件
第三步:更改备份脚本权限
代码:
chmod +x dbbackup.sh
第四步:用crontab定时执行备份脚本代码: crontab -e
若每天晚上2点00备份,添加如下代码,
代码: 00 2 * * * /var/lib/mysqlbackup/dbbackup.sh //若每天晚上2点00备份,添加如下代码,
问题:如果提示 执行mysqldump命令没找到
直接输入命令mysqldump会发现提示命令不存在,是由于系统默认会查找/usr/bin下的命令,如果这个命令不在这个目录下,自然会找不到命令,并报错。知道了问题的所在,就直接去处理,先用一条find命令查找mysqldump的所载路径。
find / -name mysql -print // 找到mysql的安装目录
然后再用ln命令链接到/usr/bin下面。
ln -fs /usr/local/mysql/bin/mysqldump /usr/bin
mysqldump 几个参数
mysqldump -uroot –proot --quick --no-create-info --extended-insert --default-character-set=utf-8 test>test.sql
参数说明:
--quick:用于转储大的表,强制mysqldump从服务器一次一行的检索数据而不是检索所有行,并输出当前cache到内存中
--no-create-info:不要创建create table语句
--extended-insert:使用包括几个values列表的多行insert语法,这样文件更小,IO也小,导入数据时会非常快
--default-character-set=utf-8:按照原有字符集导出数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码