先说一下做这个的原因,本人不小心删过数据库,还好当时在测试阶段,我有最初版本的数据库文件,但是中间在做的时候改了不少的地方,也是费了不少的功夫才搞好,正好就看一下Linux系统下数据库备份的知识:
数据库备份都是放到别的磁盘上面,但是我还是学生,只有一个腾讯云服务器,条件有限,只能采用最简单也是最不好的方法:备份到本地磁盘。
- 创建并进入备份目录:
mkdir backup
cd backup
目录以及文件夹名随个人心意,放在哪里都无所谓 - 在当前目录创建shell脚本:
vi bkMySQL.sh
将MySQL改成你自己的数据库名字 - 在脚本里面输入以下内容:
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName | gzip > /home/backup/DatabaseName_$(date +%Y%m%d_%H%M%S).sql.gz
在这里注意几点:
- 将数据库连接的用户名密码(username、password)改成你自己的。
- 数据库名字DatabaseName改成你要备份的那个数据库名字。
- 下面两行代码是压缩文件的,可有可无。
- -uusername 和-ppassword 一定要连在一起!!!我在命令行登录数据库的时候是中间有空格,就把这个习惯带到这边来了,造成我第一次数据备份的时候备份文件里面没有内容。
到这里shell脚本就已经写好了,下面开始设置脚本定时执行
- 首先授权:
chmod u+x bkMySQL.sh
u+x 是当前用户 crontab -e
(定时备份数据库需要用到crontab定时任务)
如果报错command not found那就需要自己再装一下了,我的就是,系统特别干净,用什么都得自己再装
我的Ubuntu系统的是执行apt-get install cron
命令,有的是需要yum -y install vixie-cron
我第一次试的这个不能用,系统就装上了,所以我就不清楚apt是不是要在yum的前提下才行,这个以后再查查资料吧。
第一次运行crontab -e
的时候会让你选择编辑器,我比较习惯vim(只用过这个)。。。。- 输入
*/1 * * * * /home/backup/bkMySQL.sh
保存退出
具体的时间设置方法可以上网百度一下,很多种选择。 - 因为我设置的是一分钟执行一次,所以很快就能看到效果:
到这里数据库定时备份的操作就完成了,改天再学一下数据库恢复的。