linux下mysql定时备份

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:按照原有字符集导出数据,这样导出的文件中,所有中文都是可见的,不会保存成乱码

猜你喜欢

转载自blog.csdn.net/z13615480737/article/details/80363967
今日推荐