用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