返回顶部
首页 > 资讯 > 数据库 >CentOS7下如何实现MySQL定时自动备份功能
  • 395
分享到

CentOS7下如何实现MySQL定时自动备份功能

2024-04-02 19:04:59 395人浏览 安东尼
摘要

小编给大家分享一下Centos7下如何实现Mysql定时自动备份功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们需要实现下

小编给大家分享一下Centos7下如何实现Mysql定时自动备份功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!

我们需要实现下面的几个功能:

第一:数据库备份

第二:数据库通过备份恢复

第三:数据库备份自动化

第四:清理过期备份文件

第一:数据库自动备份

1.创建备份目录

这里我选择了把备份文件放在 /data/backup/mysql下面,把脚本放在 /data/backup 下面:

[root@izwz99z5o9dc90keftqhlrz /]# mkdir -p /data/backup/mysql
[root@izwz99z5o9dc90keftqhlrz /]# cd /data/backup

2.创建脚本文件

创建mysql_backup.sh

[root@izwz99z5o9dc90keftqhlrz backup]# vi mysql_backup.sh
 
#!/bin/bash
# db_name 自己改这里哦
db_name='baizhan'
backup_dir='/data/backup/mysql/'
current_time=$(date +'%Y-%m-%d_%H%M%S')
filepath=$backup_dir$current_time'.sql.gz'
#此处没有使用 $db_passWord $db_user, 已经写入到配置文件中
echo '开始导出数据库...'
mysqldump --defaults-extra-file=/data/backup/my_mysql.cnf $db_name | gzip > $filepath
echo '导出成功,文件名为: '$filepath

3.新建配置文件

就在我们的当前目录下 即 /data/backup

[root@izwz99z5o9dc90keftqhlrz backup]# vi my_mysql.cnf
 
[mysqldump]
max_allowed_packet = 400M
host=127.0.0.1
user=root
password='SgDGfsrfEi3#@%#%ugslp%z!dAP'
[mysql]
host=127.0.0.1
user=root
password='SgDGfsrfEi3#@%#%ugslp%z!dAP'

各位看官请把上面的参数改成自己的就好了,可别漏了这一步哦

其中 mysqldump 下的参数是给导出的命令使用的,mysql 下的参数是导入的时候使用的

4.给文件权限

到这里的话导出的shell脚本就已经写好了,我们对这个脚本加一下可执行权限

[root@izwz99z5o9dc90keftqhlrz backup]# chmod +x ./mysql_backup.sh

5.执行一下我们的命令

[root@izwz99z5o9dc90keftqhlrz backup]# sh ./mysql_backup.sh
# 查看一下结果
[root@izwz99z5o9dc90keftqhlrz backup]# ll ./mysql

CentOS7下如何实现MySQL定时自动备份功能

6.扩展使用

我们解压一下已经成功导出的文件,看看原文件大小和压缩后的文件大小对比

[root@izwz99z5o9dc90keftqhlrz backup]# gzip -dc ./mysql/2019-12-22_180359.sql.gz > ./mysql/2019-12-22_180359.sql
 
[root@izwz99z5o9dc90keftqhlrz backup]# ll -sh ./mysql
total 44K
 36K -rw-r--r-- 1 root root 36K Dec 22 18:06 2019-12-22_180359.sql
8.0K -rw-r--r-- 1 root root 5.9K Dec 22 18:03 2019-12-22_180359.sql.gz
 36Kb 和8Kb的对比,如果数据库比较大的话,更能节省空间

到这里为止,我们的导出脚本已经完成了,接下来就是导入脚本了

第二:数据库通过备份恢复

1.创建脚本文件

按照第一步的操作,此时我们应该处于 /data/backup 目录下,继续操作

[root@izwz99z5o9dc90keftqhlrz backup]# vi mysql_restore.sh
#!/bin/bash
if [ -z $1 ] || [ ! -f $1 ]
then
 echo "请输入sql压缩文件(*.sql.gz)"
 exit 1
fi
#输入你自己的数据库名称
db_name='jx_guides'
base_dir='/data/backup/mysql/'
gz_sql_file=`basename $1`
file_ext=${gz_sql_file##*.}
if [ $file_ext != 'gz' ]
then
 echo '文件格式不正确,请输入 .sql.gz 文件'
 exit 1
fi
sql_file=${gz_sql_file%.*}
echo '解压文件中...'
gzip -dc $base_dir$gz_sql_file > $base_dir$sql_file
echo '解压完成.'
echo '开始导入数据库...'
mysql --defaults-extra-file=/data/backup/my_mysql.cnf $db_name < $base_dir$sql_file
if [ -f $base_dir$sql_file ]
then
 echo '删除临时文件.'
 rm -f $base_dir$sql_file
fi
echo '导入完成.'

上面代码中的配置文件,就是我们第一步时创建的配置文件,在这里一样的使用

2.增加文件可执行权限

[root@izwz99z5o9dc90keftqhlrz backup]# chmod +x ./mysql_restore.sh

3.我们来执行通过备份文件恢复数据库

[root@izwz99z5o9dc90keftqhlrz backup]# sh ./mysql_restore.sh ./mysql/2019-12-22_180359.sql.gz

解压文件中...
解压完成.
开始导入数据库...
删除临时文件.
导入完成.

在这里我们的第一个参数可以直接写备份文件的名字,不用写目录,但是因为加上目录之后,可以使用table进行自动补全,所以十分方便,其他的执行方式:其实懂的人知道都一样

其实可以在任何文件夹进行恢复,执行 这个可以在任意位置执行

[root@izwz99z5o9dc90keftqhlrz backup]# sh /data/backup/mysql_restore.sh /data/backup/mysql/2019-12-22_180359.sql.gz
 也可以这样
[root@izwz99z5o9dc90keftqhlrz mysql]# pwd
/data/backup/mysql
[root@izwz99z5o9dc90keftqhlrz mysql]# sh /data/backup/mysql_restore.sh 2019-12-22_180359.sql.gz

第三:数据库备份自动化

1.添加计划任务

[root@izwz99z5o9dc90keftqhlrz mysql]# crontab -e
 
# 粘贴下面的内容, 数据库自动备份
0 1,12 * * * /data/backup/mysql_backup.sh # 每天凌晨1点,中午12点备份一次数据

第四:清理过期备份文件

1.创建删除文件脚本

[root@izwz99z5o9dc90keftqhlrz mysql]# vi remove_backup.sh
#/bin/bash 
# 删除15天前的备份
find /data/backup/mysql -type f -mtime +15 | xargs rm -f

我这里是选择备份数据只保留最近15天的,大家根据需要自行修改

2.添加可执行权限

[root@izwz99z5o9dc90keftqhlrz mysql]# chmod +x ./remove_backup.sh
#手动删除 15天前的备份
[root@izwz99z5o9dc90keftqhlrz mysql]# ./remove_backup.sh

3.自动清理

[root@izwz99z5o9dc90keftqhlrz mysql]# crontab -e
 
# 下面这个就是脚本内容哦,添加这一句
0 1 * * * /data/backup/remove_backup.sh # 每天凌晨1点,自动删除15天[15是remove_backup.sh里面配置的]前的备份

第五:定时任务配置给贴出来

# 粘贴下面的内容, 数据库自动备份
0 1,12 * * * /data/backup/mysql_backup.sh # 每天凌晨1点,中午12点备份一次数据
 
# 下面这个就是脚本内容哦,添加这一句
0 1 * * * /data/backup/remove_backup.sh # 每天凌晨1点,自动删除15天[15是remove_backup.sh里面配置的]前的备份

以上是“CentOS7下如何实现MySQL定时自动备份功能”这篇文章的所有内容,感谢各位的阅读!相信大家都有了一定的了解,希望分享的内容对大家有所帮助,如果还想学习更多知识,欢迎关注编程网数据库频道!

您可能感兴趣的文档:

--结束END--

本文标题: CentOS7下如何实现MySQL定时自动备份功能

本文链接: https://lsjlt.com/news/55806.html(转载时请注明来源链接)

有问题或投稿请发送至: 邮箱/279061341@qq.com    QQ/279061341

猜你喜欢
  • CentOS7下如何实现MySQL定时自动备份功能
    小编给大家分享一下CentOS7下如何实现MySQL定时自动备份功能,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!我们需要实现下...
    99+
    2024-04-02
  • mysql如何实现定时自动备份数据库功能
    这篇文章主要介绍mysql如何实现定时自动备份数据库功能,文中介绍的非常详细,具有一定的参考价值,感兴趣的小伙伴们一定要看完!第一种,数据跑在服务器上,如果只想定时把数据库备份放在服务器(此处服务器系统为centos7)上,可如下设置:首先...
    99+
    2023-06-20
  • Linux下如何实现MySQL数据库每天定时自动备份
    在云计算的浪潮下,企业多将业务部署在云上。对于数据库中的数据,直接使用云数据库自带的备份功能实现备份,操作简单。但是云数据库备份数据的存储空间有限制,一旦超出存储量便自动关闭备份功能,运维人员往往也会忽略这个问题,如果这时遭遇系统故障,面临...
    99+
    2016-01-07
    Linux下如何实现MySQL数据库每天定时自动备份
  • CentOS7 MySQL如何进行定时备份
    本篇内容主要讲解“CentOS7 MySQL如何进行定时备份”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让小编来带大家学习“CentOS7 MySQL如何进行定时备份”吧! ...
    99+
    2024-04-02
  • 如何实现Mysql自动备份
    这篇文章将为大家详细讲解有关如何实现Mysql自动备份,小编觉得挺实用的,因此分享给大家做个参考,希望大家阅读完这篇文章后可以有所收获。  可以将这个脚本放进crontab,每天凌晨执行一次,自动备份  这...
    99+
    2024-04-02
  • Linux下如何实现mysql异地自动备份
    这篇文章主要讲解了Linux下如何实现mysql异地自动备份,内容清晰明了,对此有兴趣的小伙伴可以学习一下,相信大家阅读完之后会有帮助。前言:基本上不管是对于我们自己使用,还是给客户部署服务器,,mysql...
    99+
    2024-04-02
  • vbs如何实现文件夹定时自动备份
    小编给大家分享一下vbs如何实现文件夹定时自动备份,相信大部分人都还不怎么了解,因此分享这篇文章给大家参考一下,希望大家阅读完这篇文章后大有收获,下面让我们一起去了解一下吧!代码如下:' Do While 1 Run() '...
    99+
    2023-06-08
  • 数据库自动备份与手动备份功能的实现
    前端代码:function createBackUp(){ var path=$("#path").val(); $.post("dataBack",{ 'path' : path }, fun...
    99+
    2024-04-02
  • mysql实现定时备份
    编写脚本xxx.bat @echo offecho 设置MySql数据库的连接信息set host=127.0.0.1set port=3306set user=rootset pass=123456...
    99+
    2023-09-01
    mysql 数据库 php
  • windows下mysql如何自动定期备份并压缩
    这期内容当中小编将会给大家带来有关windows下mysql如何自动定期备份并压缩,文章内容丰富且以专业的角度为大家分析和叙述,阅读完这篇文章希望大家可以有所收获。工作环境 Windows Server 2...
    99+
    2024-04-02
  • Docker MySQL每天定时自动备份的实现方法
    目录一:备份二:还原三:定时任务docker mysql数据库的备份与还原,以及每天定时自动备份 一:备份 查看docker mysql Ubuntu@ubuntu:~$ sudo docker ps CONTAINER...
    99+
    2023-01-05
    DockerMySQL定时自动备份 DockerMySQL定时备份
  • 如何使用MySQL实现自动备份
    使用MySQL实现自动备份有以下几个步骤:1. 创建一个备份脚本:使用Shell脚本或其他编程语言编写一个脚本,用于执行备份操作。脚...
    99+
    2023-08-29
    MySQL
  • centos7中如何利用crontab进行mysql定时备份
    目录centos7用crontab进行mysql定时备份备注附crontab文件的一些例子总结centos7用crontab进行mysql定时备份 1、建立 mysql3306_ba...
    99+
    2024-04-02
  • linux下实现mysql自动备份的脚本
    这篇文章主要介绍“linux下实现mysql自动备份的脚本”,在日常操作中,相信很多人在linux下实现mysql自动备份的脚本问题上存在疑惑,小编查阅了各式资料,整理出简单好用的操作方法,希望对大家解答”...
    99+
    2024-04-02
  • Mysql如何在linux中实现定时备份
    在实际项目中,数据库是要经常备份的,就是为了防止突发情况,前段时间,我的数据库就遭遇了入侵要支付B特比的,结果数据全没了,哎,还好当时只是个测试库,不过有了这次危机,也就开始意识到了这个问题了。 先写个测试的数据库备...
    99+
    2022-05-23
    Mysql linux 定时备份
  • mysql如何实现定时备份shell脚本
    这篇文章给大家分享的是有关mysql如何实现定时备份shell脚本的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。 #!/bin/bashecho &q...
    99+
    2024-04-02
  • 如何用脚本实现mysql自动备份?
    首先执行vi dbbackup.sh命令,在打开的编辑器输入:#!/bin/bash /usr/local/mysql/bin/mysqldump -uuser -ppasswd databasename ...
    99+
    2024-04-02
  • xtrabackup如何实现MySQL自动备份恢复
    这篇文章主要介绍了xtrabackup如何实现MySQL自动备份恢复,具有一定借鉴价值,感兴趣的朋友可以参考下,希望大家阅读完这篇文章之后大有收获,下面让小编带着大家一起了解一下。1. xtrabackup...
    99+
    2024-04-02
  • mysql怎么定时自动备份数据库
    您可以使用MySQL的事件调度器来定时自动备份数据库。以下是一种常见的方法:1. 登录MySQL命令行客户端或其他MySQL管理工具...
    99+
    2023-08-18
    mysql
  • linux下mysql如何自动备份shell脚本
    Linux 服务器上的程序每天都在更新 MySQL 数据库,于是就想起写一个 shell 脚本,结合 crontab,定时备份数据库。其实非常简单,主要就是使用 MySQL 自带的 mysqldump 命令...
    99+
    2022-06-04
    脚本 自动备份 linux
软考高级职称资格查询
编程网,编程工程师的家园,是目前国内优秀的开源技术社区之一,形成了由开源软件库、代码分享、资讯、协作翻译、讨论区和博客等几大频道内容,为IT开发者提供了一个发现、使用、并交流开源技术的平台。
  • 官方手机版

  • 微信公众号

  • 商务合作