对mysql数据库进行定时备份在windows下我们可以使用mysqldump与xcopy来加计划任务来自动备份,而linux中我们可以使用crontab+mysqldump来定时备份数据库.
先来看windows中定时备份方法
方法一,mysqldump备份数据库
新建一个文件,如 mysqldump.bat,将下面代码写入文件mysqldump.bat:
- @echo off
-
- set file_dir=d:/a
-
- rem 备份文件所在的目录
-
- set file_name=%date:~0,10%-%time:~0,2%-%time:~3,2%-%time:~6,2%
-
- rem 备份文件名
-
- C:/mysql/bin/mysqldump.exe -u root -p123456 databasename> %file_dir%/%file_name%.sql
-
- rem C:/mysql/bin/mysqldump.exe为mysqldump程序所在地址,root为用户名,123456为密码,
-
- databasename为待备份的数据库名
然后将mysqldump.bat加入到任务计划中即可,设置每天指定时间来运行即可,“属性”=》“高级”中,还可以设置“重复任务”.
方法二,xcopy直接复制文件夹
1、复制date文件夹备份
假想环境:MySQL安装位置:C:/MySQL,论坛数据库名称为:bbs,数据库备份目的地:C:/db_bak/,新建db_bak.bat,写入以下代码:
- *******************************Code Start*****************************
- net stop mysql
- xcopy c:/mysql/data/bbs/*.* c:/db_bak/bbs/%date:~0,10%/ /S /I
- net start mysql
- *******************************Code End *****************************
linux中定时备份方法
利用Linux的定时计划功能(Cron)和MySQL的导出功能(mysqldump),编辑 /etc/crontab,代码如下:
vim /etc/crontab
按顺序加入如下两个语句,带了注释,代码如下:
- # remove all old backup files less than 29 days
- 10 2 1 * * root find /mnt/database/ -name '*.sql.gz' -type f -mtime -29 -mtime +7 -exec rm -f {} ; //phpfensi.com
- # automatically backup mysql every day
- 15 2 * * * root mysqldump -u root -pPASSWORD
cron中任务计划的格式为:
# m h dom mon dow user command
即:
第一个数字表示分(minute);
第二个数字表示时(hour);
第三个数字表示天(day of month);
第四个数字表示月(month);
第五个数字表示分(day of week);
以上数字为*时表示不限,接下来是执行命令的用户和命令内容. |