因为项目需要,查阅了一些关于centos中mysql数据库的备份资料,在这里记录一下。
1.创建目录来存放备份的sql文件
[root@hust apache-tomcat-6.0.35]# mkdir database_backup
通过find命令可以用来查看database_backup目录的绝对路径,这个路径以后会用到
[root@hust /]# find -name database_backup
./usr/local/tomcat/apache-tomcat-6.0.35/database_backup
2.建立shell脚本,执行备份的操作
将脚本放在/usr/sbin目录下,脚本名称为mysqlback.sh
编辑脚本:
[root@hust /]# vi /usr/sbin/mysqlback.sh
在里面输入如下内容:
date=` date +%Y%m%d `
mysqldump -uusername -ppassword -hhostname database-name >./usr/local/tomcat/apachetomcat-6.0.35/database_backup/database-name$date.sql
注意:上面date那行不是单引号,而是Esc按键下的那个点,如果使用单引号,会得不到希望的结果的,如果不行,就直接copy上面的那行语句。
将mysqldump那行的username,password,hostname,database-name换成自己的,-uusername是连着的,如-uroot,password,hostname也是连着的。
3.最好修改下mysqlback.sh的权限
[root@hust sbin]# chmod 777 mysqlback.sh
4.修改/etc/crontab
这个配置文件是设置定时执行的,在最下面加入
01 2 * * * root /usr/sbin/mysqlback.sh
会让mysqlback.sh这个脚本每天2点01分执行,如果想设置成其他的时间执行,可以查看crontab的说明
修改后的crontab文件如下:
SHELL=/bin/bash
PoTH=/sbin:/bin:/usr/sbin:/usr/bin
t /usr/sbin/mysqlback.sh
MAILTO=root
HOME=/
# For details see man 4 crontabs
# Example of job definition:
# .---------------- minute (0 - 59)
# | .------------- hour (0 - 23)
# | | .---------- day of month (1 - 31)
# | | | .------- month (1 - 12) OR jan,feb,mar,apr ...
# | | | | .---- day of week (0 - 6) (Sunday=0 or 7) OR sun,mon,tue,wed,thu,fri,sat
# | | | | |
# * * * * * user-name command to be executed
01 2 * * * root /usr/sbin/mysqlback.sh
5.重启crond
[root@hust sbin]# /etc/rc.d/init.d/crond restart
停止 crond: [确定]
正在启动 crond: [确定]
这样,每天凌晨2点01分就会进行数据库备份了。并将备份后的.sql文件存在./usr/local/tomcat/apache-tomcat-6.0.35/database_backup目录下,备份的文件名是数据库名+日期名的形似。如test20121226.sql这样的形式。