介绍
小编给大家分享一下CentOS7下如何实现MySQL定时自动备份功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获、下面让我们一起去了解一下吧!
<强>我们需要实现下面的几个功能:强>
第一:数据库备份
第二:数据库通过备份恢复
第三:数据库备份自动化
第四:清理过期备份文件
<强>第一:数据库自动备份强>
1。创建备份目录
这里我选择了把备份文件放在/数据/备份/mysql下面,把脚本放在/数据/备份下面:
[root@izwz99z5o9dc90keftqhlrz /] #, mkdir -p /数据/备份/mysql [root@izwz99z5o9dc90keftqhlrz /] #, cd /数据/备份
2。创建脚本文件
创建mysql_backup。sh
(root@izwz99z5o9dc90keftqhlrz 备份)#,vi mysql_backup.sh , # !/bin/bash #,db_name 自己改这里哦 db_name=& # 39; baizhan& # 39; backup_dir=& # 39;/数据/备份/mysql/& # 39; 当前时间=$ (date + & # 39; Y % - % m - H % d_ % % m % & # 39;) filepath=backup_dir当前时间# 39;美元.sql.gz& # 39; #此处没有使用,db_password 美元;db_user美元,已经写入到配置文件中 echo & # 39;开始导出数据库……& # 39; mysqldump ——defaults-extra-file=/数据/备份/my_mysql.cnf db_name 美元;|,gzip 祝辞filepath美元 echo & # 39;导出成功,文件名为:,& # 39;美元filepath
3。新建配置文件
就在我们的当前目录下即/数据/备份
(root@izwz99z5o9dc90keftqhlrz 备份)#,vi my_mysql.cnf , (,mysqldump) max_allowed_packet =400 主机=127.0.0.1 用户=根 密码=& # 39;SgDGfsrfEi3 # @ % # % ugslp % z ! dap # 39; (mysql) 主机=127.0.0.1 用户=根 密码=& # 39;SgDGfsrfEi3 # @ % # % ugslp % z ! dap # 39;
各位看官请把上面的参数改成自己的就好了,可别漏了这一步哦
其中,mysqldump下的参数是给导出的命令使用的,mysql下的参数是导入的时候使用的
4。给文件权限
到这里的话导出的shell脚本就已经写好了,我们对这个脚本加一下可执行权限
(root@izwz99z5o9dc90keftqhlrz 备份)#,chmod + x 。/mysql_backup.sh
5。执行一下我们的命令
(root@izwz99z5o9dc90keftqhlrz 备份)#,sh 。/mysql_backup.sh #,查看一下结果 (root@izwz99z5o9dc90keftqhlrz 备份)#,ll 。/mysql
6。扩展使用
我们解压一下已经成功导出的文件,看看原文件大小和压缩后的文件大小对比
(root@izwz99z5o9dc90keftqhlrz 备份)#,gzip -dc 。/mysql/2019 - 12 - 22 _180359.sql.gz 祝辞,。/mysql/2019 - 12 - 22 _180359.sql , (root@izwz99z5o9dc90keftqhlrz 备份)#,ll -sh 。/mysql total 44 k ,36 k -rw-r——r, 1, root root 36 k Dec 22, 18:06 2019 - 12 - 22 - _180359.sql 8.0 k -rw-r——r, 1, root root 5.9 k Dec 22, 18:03 2019 - 12 - 22 - _180359.sql.gz ,36 kb 和8 kb的对比,如果数据库比较大的话,更能节省空间
到这里为止,我们的导出脚本已经完成了,接下来就是导入脚本了
<强>第二:数据库通过备份恢复强>
1。创建脚本文件
按照第一步的操作,此时我们应该处于/数据/备份目录下,继续操作
(root@izwz99z5o9dc90keftqhlrz 备份)#,vi mysql_restore.sh # !/bin/bash if [1美元,-z ], | |,[!大敌;-f 1美元,) 然后 ,echo “请输入sql压缩文件(* .sql.gz)“; exit 1 fi #输入你自己的数据库名称 db_name=& # 39; jx_guides& # 39; base_dir=& # 39;/数据/备份/mysql/& # 39; gz_sql_file=' basename $ 1 ' file_ext=$ {gz_sql_file # # *。} if [, file_ext 美元;!=,& # 39;广州# 39;,) 然后 ,echo & # 39;文件格式不正确,请输入,.sql.gz 文件& # 39; exit 1 fi sql_file=$ {gz_sql_file %。*} echo & # 39;解压文件中…& # 39; gzip -dc  base_dir gz_sql_file 美元;祝辞base_dir sql_file美元 echo & # 39;解压完成强生# 39; echo & # 39;开始导入数据库……& # 39; mysql ——defaults-extra-file=/数据/备份/my_mysql.cnf db_name 美元;& lt; base_dir sql_file美元 if [, -f base_dir sql_file 美元) 然后 ,echo & # 39;删除临时文件强生# 39; ,rm -f  base_dir sql_file美元 fi echo & # 39;导入完成强生# 39;CentOS7下如何实现MySQL定时自动备份功能