利用crontab 每夜备份MySQL数据库 

自从数据库挂过一次之后,我越来越开始重视起我的数据安全了~特别是数据备份,一直要保质保量的完成。

我是这样做的,由于现在还没有找到完美的远程备份的解决方案,我先是在本地备份在本地,而后在手动转移。

首先,创建一个专门用于备份数据的MySQL用户,比如 dumper,授予所有数据库及表的select 和 lock table 权限,密码一定要足够的强大,并且只允许在本地登录。

命令:
grant select,lock tables on *.* to 'dumper'@'localhost' identified by PASSWORD('XXXX').
即可。

之后,为了让crontab 执行mysqldump 时不使用交互密码,编辑 my.cnf 配置文件。

找到[mysqldump]节点,加入
user = dumper
password = XXXX

保存。

一切OK后,使用crontab 创建备份任务.

运行 crontab -e
输入 0 0 * * * mysqldump -A -C -u dumper | bzip2 -9 > ~/sql/mysql_`date +%s`.sql.bz2

保存退出即可。

查看一下:
[[email protected] sql]# crontab -l
0 0 * * * mysqldump -A -C -u dumper | bzip2 -9 > ~/sql/mysql_`date +%s`.sql.bz2

这样的话,在每晚的0点,mysql 都会被整个压缩备份下来一次,再也不用担心数据库挂掉拉~

我个人建议是压缩一下,gzip/bzip 均可,压一下的结果很明显,毕竟VPS的硬盘也不算大~

[[email protected] sql]# ls -l -h
total 3.9M
-rw-r--r-- 1 root root 689K Jul 9 12:53 mysql_1310201629.sql.bz2
-rw-r--r-- 1 root root 3.2M Jul 9 12:54 mysql_1310201645.sql
[ 2 评论 ] ( 2099 次浏览 ) 永久链接 ( 3 / 1293 )

<< <上一页 | 12 | 13 | 14 | 15 | 16 | 17 | 18 | 19 | 20 | 21 | 下一页> >>