首页 > 数据库 > MySQL > 正文

mysql利用mysqldump定时自动备份mysql数据库

2024-07-24 12:37:31
字体:
来源:转载
供稿:网友

对mysql数据库进行定时备份在windows下我们可以使用mysqldump与xcopy来加计划任务来自动备份,而linux中我们可以使用crontab+mysqldump来定时备份数据库.

先来看windows中定时备份方法

方法一,mysqldump备份数据库

新建一个文件,如 mysqldump.bat,将下面代码写入文件mysqldump.bat:

  1. @echo off 
  2.  
  3. set file_dir=d:/a 
  4.  
  5. rem 备份文件所在的目录 
  6.  
  7. set file_name=%date:~0,10%-%time:~0,2%-%time:~3,2%-%time:~6,2% 
  8.  
  9. rem 备份文件名 
  10.  
  11. C:/mysql/bin/mysqldump.exe -u root -p123456 databasename> %file_dir%/%file_name%.sql 
  12.  
  13. rem C:/mysql/bin/mysqldump.exe为mysqldump程序所在地址,root为用户名,123456为密码, 
  14.  
  15. databasename为待备份的数据库名 

然后将mysqldump.bat加入到任务计划中即可,设置每天指定时间来运行即可,“属性”=》“高级”中,还可以设置“重复任务”.

方法二,xcopy直接复制文件夹

1、复制date文件夹备份

假想环境:MySQL安装位置:C:/MySQL,论坛数据库名称为:bbs,数据库备份目的地:C:/db_bak/,新建db_bak.bat,写入以下代码:

  1. *******************************Code Start***************************** 
  2. net stop mysql 
  3. xcopy c:/mysql/data/bbs/*.* c:/db_bak/bbs/%date:~0,10%/ /S /I 
  4. net start mysql 
  5. *******************************Code End ***************************** 

linux中定时备份方法

利用Linux的定时计划功能(Cron)和MySQL的导出功能(mysqldump),编辑 /etc/crontab,代码如下:

vim /etc/crontab

按顺序加入如下两个语句,带了注释,代码如下:

  1. # remove all old backup files less than 29 days 
  2. 10 2 1 * * root find /mnt/database/ -name '*.sql.gz' -type f -mtime -29 -mtime +7 -exec rm -f {} ; //Vevb.com
  3. # automatically backup mysql every day 
  4. 15 2 * * * root mysqldump -u root -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);

以上数字为*时表示不限,接下来是执行命令的用户和命令内容.

发表评论 共有条评论
用户名: 密码:
验证码: 匿名发表