Windows下Mysql数据库的自动备份可以使用Windows系统的“任务计划”功能进行定时备份。
1.编辑数据库备份脚本并保存,代码如下:注释:保存文件名称为“dbName_YYYYMMdd_HHmmss”。
@echo 取日期、时间变量值 set yy=%date:~0,4% set mm=%date:~5,2% set dd=%date:~8,2% if /i %time:~0,2% lss 10 set hh=0%time:~1,1% if /i %time:~0,2% geq 10 set hh=%time:~0,2% set mn=%time:~3,2% set ss=%time:~6,2% set date=%yy%%mm%%dd% set time=%hh%%mn%%ss% set filename=%date%_%time% mysqldump -uroot -ppassword --default-character-set=utf8 --opt --extended-insert=false --triggers -R --hex-blob -x dbName > D:\db_bak\dbName_%filename%.sql @echo 导出已经完成 @pause
2.使用Windows任务计划功能设置定时任务,操作步骤如下(以Windows Server 2003为例):
2.1.打开任务计划功能:开始->系统工具->任务计划程序(WindowsXP任务计划位置:开始->所有程序->附件->系统工具->任务计划 或 控制面板->任务计划),如下图:
2.2.点击“创建任务”(或“创建基本任务)对计划进行设置,如下图:
在触发器界面设置任务启动时间:
在操作界面点击【浏览】选择之前保存的数据库备份脚本文件:
其他按需设置即可,设置完成后点击【确定】按钮,该定时任务即设置完成。
Linux下Mysql数据库的自动备份是利用系统crontab来定时执行备份脚本文件。
1、创建保存备份文件的路径/var/ backup/ mysqlbak
# mkdir -p /var/backup/mysqlbak
2、创建/usr/sbin/bakmysql备份脚本文件
#vi /usr/sbin/bakmysql.sh
编写如下代码并保存
#!/bin/bash # mysql备份脚本 cd /var/ mysqlbak / dateDIR=`date +"%y-%m-%d"` mkdir -p $dateDIR/ for i in `mysql -uroot -ppassword -e "show databases" | grep -v "Database" | grep -v "information_schema"` do mysqldump -uroot -proot --skip-lock-tables $i | gzip > /mysqlbak/$dateDIR/${i}_${dateDIR}.gz done
3、修改文件属性,使其可执行
# chmod +x /usr/sbin/ bakmysql.sh
4、修改/etc/crontab
# crontab -e
在下面添加
0 3 * * * root / usr/sbin/bakmysql.sh
表示每天3点钟执行备份(0 3 * * *分别表示:分时 天 月 年,中间用空格隔开)。
这样每天就可以在/var/backup/mysqlbak下看到备份的sql文件 了!
特别注意:若运行crontab出现错误,提示no crontab for root
,则系统中目前没有crontab,需要新建一个。
解决办法:
登录到root用户。
在root下输入:crontab -e
可能会提示你:no crontab for root - using an empty one 然后会叫你“Select a editor ......”下面有几个选项,就是叫你选择编辑器。一般选 vim.tiny。
进入crontab编辑页面之后就直接"shift:",然后输入wq保存即可。
然后一个新的crontab就生成了!