Linux教程

Linux下实现数据库每天自动备份

文 / 管理员 来源 / 转载 https://cloud.tencent.com/developer/article/2027178 阅读 / 843 1年前

前两天数据库操作的时候误删了几条数据,找不回了,才发现没有搞备份哇~ 所以今天加了个自动备份,记录一下操作。

linux下如何实现mysql数据库每天定时自动备份,并删除60天内的备份文件。

1、创建备份文件:

可以根据自己的实际情况选择在哪个目录下创建文件,我这里是在data下创建的backSql文件夹。

cd data
mkdir /backSql 

//脚本文件放在data/backup中
cd /data
mkdir /backup
cd backup

2、创建备份Shell脚本:(bkZjBlog是我自己命名的)

//这个命令是编辑bkZjBlog文件
vi bkZjBlog.sh 

//输入以下内容
#!/bin/bash
mysqldump -uusername -ppassword DatabaseName > /data/backSql/DatabaseName_$(date +%Y%m%d_%H%M%S).sql

//这条是找出60天前的备份文件并删除掉(脚本文件不要放在备份文件中,不然也会被删掉..)
find /data/backSql/ -mtime +60 -type f | xargs rm -f

编辑好后保存即可。

注意:

vi编辑需要按i后才能输入,编辑完按esc,shift+;,输入wq为并存并退出。

username:用户名

password:密码

DatabaseName:要备份的数据库名称 DatabaseName_$(date +%Y%m%d_%H%M%S).sql

(最后格式DatabaseName_20181229_174804.sql)

3、添加可执行权限:

chmod u+x bkZjBlog.sh

添加可执行权限之后先执行一下,看看脚本有没有错误,能不能正常使用;

./bkZjBlog.sh

执行完到backSql目录下即可看到备份好的sql文件。

:这里可能会报错

Warning: Using a password on the command line interface can be insecure. (在命令行界面上使用密码可能不安全。)

导出MySQL数据库的时候采用mysqldump命令,出现"Warning: Using a password on the command line interface can be insecure."的错误提示。这个问题应该是在MySQL5.6+版本的时候就有出现,可能是为了确保数据库的安全性采用的保护机制。

我出现了这个问题,但是备份还是好了。所以还没有去解决。

-bash: ./bkZjBlog.sh: /bin/bash^M: bad interpreter: No such file or directory

方法一:vim bkZjBlog.sh进入bkZjBlog.sh后, 在底部模式下, 执行:set fileformat=unix后执行:x或者:wq保存修改。 然后就可以执行./bkZjBlog.sh运行脚本了。(我亲自试过, 是ok的)

方法二:直接执行sed -i “s/\r//” bkZjBlog.sh来转化, 然后就可以执行./bkZjBlog.sh运行脚本了。

mysql和mysqldump出现command not found 问题解决

mysqldump:command not found 建立软连接 ln -s  /usr/local/mysql/bin/mysqldump  /usr/bin

4、添加计划任务

执行命令:

crontab -e

这时就像使用vi编辑器一样,可以对计划任务进行编辑。 

输入以下内容并保存:

30 01 * * * /data/backSql/bkZjBlog.sh

具体是什么意思呢? 

意思是每天早上1:30执行一次shell脚本“/data/backSql/bkZjBlog.sh”。


eb70016b4a45b646572eb7ba8bec6536.png


完成。Linux很多命令还是需要去记啊,不然很不方便·~~


评论

共0条评论
  • 这篇文章还没有收到评论,赶紧来抢沙发吧~

站点声明:本站转载作品版权归原作者及来源网站所有,原创内容作品版权归作者所有,任何内容转载、商业用途等均须联系原作者并注明来源。

© 2020-2030 qdxcy.cn 版权所有京ICP备13045222号
相关侵权、举报、投诉及建议等,请发E-mail:2323946929@qq.com

友情链接: YzmCMS官方网站 YzmCMS官方论坛