mysql数据库自动备份
每日定时备份是网站的必要机制,我们可以使用mysqldump进行,
正常手动备份是
mysqldump -uroot -p 需要备份的数据库 >> 备份文件存放位置
输入密码,备份。
如果我们直接使用命令
mysqldump -uroot -p密码 需要备份的数据库 >> 备份文件存放位置
会提示 Warning: Using a password on the command line interface can be insecure
换一个思路去实现,我们在my.cnf增加配置:
[mysqldump]
user=your_backup_user_name
password=your_backup_password
修改完配置文件重启数据库, 只需要执行mysqldump 脚本就可以了。备份脚本中不需要涉及用户名密码相关信息。
最后的命令:mysqldump 需要备份的数据库 >> 备份文件存放位置
如果要实现每日的备份,那定时脚本不可少,我们用PHP来调用mysqldump生成每日的备份。
直接上代码:
<?php set_time_limit(1800); $path=‘/XXX/‘.date('Ym').'/'; if(!is_dir($path)){ @mkdir($path); } $cmd_db1="/usr/local/mysql/bin/mysqldump XXX>".$path.”xxx”.date('YmdHis').".sql"; $cmd_db2="/usr/local/mysql/bin/mysqldump XXX>".$path.”xxx”.date('YmdHis').".sql"; exec($cmd_db1); exec($cmd_db2);
加上定时任务
crontab 基本格式 :
* * * * * command
分 时 日 月 周 命令
第1列表示分钟1~59 每分钟用*或者 */1表示
第2列表示小时1~23(0表示0点)
第3列表示日期1~31
第4列表示月份1~12
第5列标识号星期0~6(0表示星期天)
第6列要运行的命令
添加新任务:
0 23 * * * /usr/local/php/bin/php xxx.php > /dev/null 2>&1;
每天晚上23点执行。
PHP的路径要使用完整路径,这里使用的可能会与真实服务器不同,要以实际的为主。

浙公网安备 33010602011771号