【经验】mysql数据库定时备份

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/sunxiaoyu94/article/details/48600305

用mysqldump备份数据库时,如果出现when using LOCK TABLES,解决办法是加上 –skip-lock-tables
例如:
用mysqldump备份数据库时出现
Got error 1016: Can’t open file: ‘./sql/think_tabes.frm’ (Errorno: 24 - Too many open files) when using LOCKTABLES
在数据库名后加–skip-lock-tables即可。
即备份数据库命令为:
/命令目录/mysqldump -u 用户名 -p 数据库名称 –skip-lock-tables > **.sql
或者
/命令目录/mysqldump -u 用户名 -p –skip-lock-tables 数据库名称> **.sql

定时备份
第一步:在服务器上配置备份目录代码:
mkdir /var/lib/mysqlbackup
cd /var/lib/mysqlbackup

第二步:修改mysql配置:
vim /etc/mysql/my.cnf
[mysqldump]
user=your_backup_user_name
password=your_backup_password
修改完配置文件后, 只需要执行mysqldump 脚本就可以了。备份脚本中不需要涉及用户名密码相关信息。

第三步:编写备份脚本代码:

vi dbbackup.sh
代码:

 #!/bin/sh
mysqldump -uuser -ppassword dbname | 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
若每天早晨4点00备份,添加如下代码,
00 4 * * * /var/lib/mysqlbackup/dbbackup.sh

猜你喜欢

转载自blog.csdn.net/sunxiaoyu94/article/details/48600305
今日推荐