我的编程空间,编程开发者的网络收藏夹
学习永远不晚

定时任务备份mysql数据库,同时备份多个数据库

短信预约 信息系统项目管理师 报名、考试、查分时间动态提醒
省份

北京

  • 北京
  • 上海
  • 天津
  • 重庆
  • 河北
  • 山东
  • 辽宁
  • 黑龙江
  • 吉林
  • 甘肃
  • 青海
  • 河南
  • 江苏
  • 湖北
  • 湖南
  • 江西
  • 浙江
  • 广东
  • 云南
  • 福建
  • 海南
  • 山西
  • 四川
  • 陕西
  • 贵州
  • 安徽
  • 广西
  • 内蒙
  • 西藏
  • 新疆
  • 宁夏
  • 兵团
手机号立即预约

请填写图片验证码后获取短信验证码

看不清楚,换张图片

免费获取短信验证码

定时任务备份mysql数据库,同时备份多个数据库

编写备份数据库的shell脚本

  1. 创建脚本
mkdir -p /root/mysql_dump/data
cd /root/mysql_dump
vim mysql_back.sh
  1. 脚本内容如下
#!/bin/sh
# File: /root/mysql_dump/mysql_back.sh
# Database info
DB_NAME1="database1"
DB_NAME2="database1"
DB_USER="username"
DB_PASS="userpassword"
# Others vars
# whereis mysqldump
# IS ` but not "
BIN_DIR="/usr/bin"
BCK_DIR="/root/mysql_dump/data"
DATE=`date +%Y%m%d_%H%M%S`
# TODO
if [ ! -d $BCK_DIR ];then
mkdir -p $BCK_DIR
fi
#back DB_NAME1
$BIN_DIR/mysqldump --opt --lock-tables=false -u$DB_USER -p$DB_PASS $DB_NAME1 | gzip 
 > $BCK_DIR/$DB_NAME1.dump_$DATE.sql.gz
#set sql file readonly
chattr +i $BCK_DIR/$DB_NAME1.dump_$DATE.sql.gz
#DB_NAME2
$BIN_DIR/mysqldump --opt --lock-tables=false -u$DB_USER -p$DB_PASS $DB_NAME2 | gzip 
 > $BCK_DIR/$DB_NAME2.dump_$DATE.sql.gz
#set sql file readonly
chattr +i $BCK_DIR/$DB_NAME2.dump_$DATE.sql.gz
  1. 脚本字段详细解释
#!/bin/sh
# 要备份的数据库名字:database1
DB_NAME1="database1"
# 要备份的数据库名字:database2
DB_NAME2="database1"
# mysql的账号
DB_USER="username"
# mysql的密码
DB_PASS="userpassword"
# 命令所在文件夹
BIN_DIR="/usr/bin"
# 数据库备份文件的保存位置
BCK_DIR="/root/mysql_dump/data"
# 当前日期
DATE=`date +%Y%m%d_%H%M%S`
# 判断备份文件是否存在如果不存在,就创建
if [ ! -d $BCK_DIR ];then
mkdir -p $BCK_DIR
fi
#备份数据库database1,并压缩成gz格式,并输出保存在/root/mysql_dump/data目录
$BIN_DIR/mysqldump --opt --lock-tables=false -u$DB_USER -p$DB_PASS $DB_NAME1 | gzip 
 > $BCK_DIR/$DB_NAME1.dump_$DATE.sql.gz
#上面这句话变量替换出来是:
#/usr/bin/mysqldump --opt --lock-tables=false -uusername -puserpassword #database1 | gzip  
#> /root/mysql_dump/data/database1.dump_20181129_155629.sql.gz


#设置导出的文件只读属性,放置数据文件被误删除
> chattr +i $BCK_DIR/$DB_NAME1.dump_$DATE.sql.gz
#上面这句话的变量替换以后的意思是:
chattr +i /root/mysql_dump/data/database1.dump_20181129_155629.sql.gz$BCK_DIR/$DB_NAME1.dump_$DATE.sql.gz

#备份数据库database2,下面的语句的意思同备份数据库database1的意思一样,不再赘述
$BIN_DIR/mysqldump --opt --lock-tables=false -u$DB_USER -p$DB_PASS $DB_NAME2 | gzip 
 > $BCK_DIR/$DB_NAME2.dump_$DATE.sql.gz
#set sql file readonly
chattr +i $BCK_DIR/$DB_NAME2.dump_$DATE.sql.gz
修改脚本权限
chmod 755 /root/mysql_dump/mysql_back.sh
以root用户登录mysql客户端,创建账户username,并赋予该账户可以使用密码userpassword,在本地,查询数据库database1和数据库database2的权限
[root@localhost ~]# mysql -uroot -proot
mysql: [Warning] Using a password on the command line interface can be insecure.
Welcome to the MySQL monitor.  Commands end with ; or g.
Your MySQL connection id is 38
Server version: 5.7.23 MySQL Community Server (GPL)

Copyright (c) 2000, 2018, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type "help;" or "h" for help. Type "c" to clear the current input statement.

mysql> grant select on database1.* to username@localhost identified by "userpassword";
Query OK, 0 rows affected (0.00 sec)
mysql> grant select on database2.* to username@localhost identified by "userpassword";
Query OK, 0 rows affected (0.00 sec)
mysql> flush privileges;
使用crontab -e配置定时任务
[root@10-13-111-96 mysql_dump]# crontab -e
0 1 * * * /bin/bash /root/mysql_dump/mysql_back.sh > /dev/null 2>&1
# 这句意思是每天一点运行

有不清楚的,评论区留言,会及时回复

免责声明:

① 本站未注明“稿件来源”的信息均来自网络整理。其文字、图片和音视频稿件的所属权归原作者所有。本站收集整理出于非商业性的教育和科研之目的,并不意味着本站赞同其观点或证实其内容的真实性。仅作为临时的测试数据,供内部测试之用。本站并未授权任何人以任何方式主动获取本站任何信息。

② 本站未注明“稿件来源”的临时测试数据将在测试完成后最终做删除处理。有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341

定时任务备份mysql数据库,同时备份多个数据库

下载Word文档到电脑,方便收藏和打印~

下载Word文档

猜你喜欢

定时任务备份mysql数据库,同时备份多个数据库

编写备份数据库的shell脚本创建脚本mkdir -p /root/mysql_dump/datacd /root/mysql_dumpvim mysql_back.sh脚本内容如下#!/bin/sh# File: /root/mysql_dump/mysql
2018-09-25

Linux 定时备份数据库

原文:https://www.cnblogs.com/az4215/p/14505741.html
Linux 定时备份数据库
2016-12-20

【数据库】数据库备份与还原 Navicat Premium备份以及定时备份设置

✨数据库备份数据库作为信息系统的核心担当着重要的角色。尤其在一些对数据可靠性要求很高的行业如银行、证券、电信等,如果发生意外停机或数据丢失其损失会十分惨重。为此数据库管理员应针对具体的业务要求制定详细的数据库备份与灾难恢复策略,并通过模拟故障对每种可能的情况进
【数据库】数据库备份与还原 Navicat Premium备份以及定时备份设置
2014-12-22

linux中数据库的定时备份

目录1 序言2 crond 相关知识点2.1 crond 是什么?2.2 crontab 进行定时任务设置2.2.1 crontab 指令选项说明2.2.2 crontab 指令使用格式2.2.4 crontab 设置步骤3 各个数据库备份
2023-05-12

mysql怎么定时自动备份数据库

您可以使用MySQL的事件调度器来定时自动备份数据库。以下是一种常见的方法:1. 登录MySQL命令行客户端或其他MySQL管理工具。2. 创建一个存储过程,用于备份数据库。例如,创建一个名为`backup_database`的存储过程,如
2023-08-18

MySQL定时备份数据库操作示例

本文实例讲述了MySQL定时备份数据库操作。分享给大家供大家参考,具体如下: 1. 查看mysqldumproot@laowang:/# which mysqldump /usr/bin/mysqldump2. 编写脚本 编辑my.cnf文
2022-05-17

Mysql数据库定时备份脚本分享

BackUpMysql.sh脚本#!/bin/bash PATH=/bin:/sbin:/usr/bin:/usr/sbin:/usr/local/bin:/usr/local/sbin export PATH#数据库ip DBHOST='
2022-05-31

mysql数据库定时备份怎么实现

有多种方法可以实现MySQL数据库的定时备份,以下是其中一种常用的方法:使用crontab定时任务:首先创建一个备份脚本,比如backup.sh,该脚本可以使用mysqldump命令来备份数据库,如下所示:#!/bin/bashmysql
mysql数据库定时备份怎么实现
2024-04-12

MySQL如何实现定时全库备份数据库

这篇文章给大家分享的是有关MySQL如何实现定时全库备份数据库的内容。小编觉得挺实用的,因此分享给大家做个参考,一起跟随小编过来看看吧。一、MySQL数据备份1.1、 mysqldump命令备份数据在MySQL中提供了命令行导出数据库数据以
2023-06-20

编程热搜

目录