自从数据库挂过一次之后,我越来越开始重视起我的数据安全了~特别是数据备份,一直要保质保量的完成。
我是这样做的,由于现在还没有找到完美的远程备份的解决方案,我先是在本地备份在本地,而后在手动转移。
首先,创建一个专门用于备份数据的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
保存退出即可。
查看一下:
[root@PowerPC sql]# crontab -l
0 0 * * * mysqldump -A -C -u dumper | bzip2 -9 > ~/sql/mysql_`date +%s`.sql.bz2
这样的话,在每晚的0点,mysql 都会被整个压缩备份下来一次,再也不用担心数据库挂掉拉~
我个人建议是压缩一下,gzip/bzip 均可,压一下的结果很明显,毕竟VPS的硬盘也不算大~
[root@PowerPC 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
我是这样做的,由于现在还没有找到完美的远程备份的解决方案,我先是在本地备份在本地,而后在手动转移。
首先,创建一个专门用于备份数据的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
保存退出即可。
查看一下:
[root@PowerPC sql]# crontab -l
0 0 * * * mysqldump -A -C -u dumper | bzip2 -9 > ~/sql/mysql_`date +%s`.sql.bz2
这样的话,在每晚的0点,mysql 都会被整个压缩备份下来一次,再也不用担心数据库挂掉拉~
我个人建议是压缩一下,gzip/bzip 均可,压一下的结果很明显,毕竟VPS的硬盘也不算大~
[root@PowerPC 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