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