使用 Shell 脚本对 MySQL 数据库进行远程备份

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
简介: 使用 Shell 脚本对 MySQL 数据库进行远程备份

使用 Shell 脚本对 MySQL 数据库进行远程备份



一、Master 上操作


1.检查 MySQL 数据库端口是否开启

2.创建 MySQL 数据库密码

3.在 MySQL 数据库中创建库

4.配置 MySQL 数据库用户授权


二、Backup 上操作


1.安装 Mariadb 数据库

2.使用 mysqldump 进行远程备份测试


三、编写 Shell 脚本对 Master 数据库进行备份


四、通过计划任务来进行自动备份


准备工作:


image.png


一、Master 上操作



1.检查 MySQL 数据库端口是否开启


[root@Master ~]# netstat -anpt | grep 3306


image.png


2.创建 MySQL 数据库密码


[root@Master ~]# mysqladmin -uroot password '123'


image.png


3.在 MySQL 数据库中创建库


[root@Master ~]# mysql -uroot -p123
mysql> create database test1;
mysql> create database test2;  


image.png


4.配置 MySQL 数据库用户授权


mysql> grant all on test1.* to zhangsan@'192.168.1.%' identified by '123';
mysql> grant all on test2.* to lisi@'192.168.1.%' identified by '123456';
mysql> flush privileges;
mysql> exit;


image.png


二、Backup 上操作



1.安装 Mariadb 数据库


[root@Backup ~]# yum -y install mariadb                           # 安装系统自带 MySQL 数据库
[root@Backup ~]# mysql -uzhangsan -p123 -h192.168.1.1             # 验证远程登陆 MySQL
MySQL [(none)]> exit


image.png



2.使用 mysqldump 进行远程备份测试


[root@Backup ~]# mysqldump -uzhangsan -p123 -h192.168.1.1 test1 > test1.sql


image.png


三、编写 Shell 脚本对 Master 数据库进行备份



Backup 上操作:


[root@Backup ~]# mkdir /mysql.bak             # 创建备份目录
[root@Backup ~]# cd /mysql.bak                # 进入备份目录
[root@Backup mysql.bak]# vim mysql.sh           # 编写备份脚本
#!/bin/bash
#定义数据库连接. 目标库信息
my_user1="zhangsan"
my_user2="lisi"
my_pass1="123"
my_pass2="123456"
my_host="192.168.1.1"
my_conn1="-u $my_user1 -p$my_pass1 -h $my_host"
my_conn2="-u $my_user2 -p$my_pass2 -h $my_host"
my_db1="test1"
my_db2="test2"
# 定义备份目录. 工具. 时间. 文件主体
bf_dir="/mysql.bak"
bf_cmd="/usr/bin/mysqldump"
bf_time=`date +%F-%H-%M-%S`
name1="${my_db1}-$bf_time"
name2="${my_db2}-$bf_time"
# 先导出为.sql文件. 然后进行压缩(打包后删除原文件)
cd $bf_dir
$bf_cmd $my_conn1 --databases $my_db1 > ${name1}.sql
$bf_cmd $my_conn2 --databases $my_db2 > ${name2}.sql
/usr/bin/tar zcf ${name1}.tar.gz ${name1}.sql --remove &> /dev/null
/usr/bin/tar zcf ${name2}.tar.gz ${name2}.sql --remove &> /dev/null


[root@Backup mysql.bak]# chmod +x mysql.sh           # 添加可执行权限
[root@Backup mysql.bak]# ./mysql.sh                    # 执行该脚本
[root@Backup mysql.bak]# ls
mysql.sh  test1-2021-01-13-00-13-47.tar.gz  test2-2021-01-13-00-13-47.tar.gz


image.png


四、通过计划任务来进行自动备份



[root@Backup mysql.bak]# crontab  -e                      # 编辑计划任务
30 23 * * * /usr/bin/sh /mysql.bak/mysql.sh
[root@Backup mysql.bak]# crontab -l                   # 查看计划任务
30 23 * * * /usr/bin/sh /mysql.bak/mysql.sh
[root@Backup mysql.bak]# date -s '2021-01-13 23:29'           # 修改时间. 方便后续验证
2021年 01月 13日 星期三 23:29:00 CST
[root@Backup mysql.bak]# rm -rf test*                 # 删除原有备份数据
[root@Backup mysql.bak]# ls
mysql.sh
[root@Backup mysql.bak]# date
2021年 01月 13日 星期三 23:30:07 CST
[root@Backup mysql.bak]# ls
mysql.sh  test1-2021-01-13-23-30-01.tar.gz  test2-2021-01-13-23-30-01.tar.gz


image.png


  • 通过计划任务和编写的 Shell 脚本结合即可实现 MySQL 数据库自动备份。


相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
相关文章
|
16天前
|
SQL 数据可视化 关系型数据库
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
轻松入门MySQL:深入探究MySQL的ER模型,数据库设计的利器与挑战(22)
|
16天前
|
存储 关系型数据库 MySQL
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
轻松入门MySQL:数据库设计之范式规范,优化企业管理系统效率(21)
|
16天前
|
关系型数据库 MySQL 数据库
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
轻松入门MySQL:精准查询,巧用WHERE与HAVING,数据库查询如虎添翼(7)
|
18天前
|
存储 关系型数据库 MySQL
数据库字符编码MySQL中使用UTF-8还是UTFB4
数据库字符编码MySQL中使用UTF-8还是UTFB4
20 0
|
21天前
|
缓存 NoSQL 关系型数据库
在Python Web开发过程中:数据库与缓存,MySQL和NoSQL数据库的主要差异是什么?
MySQL是关系型DB,依赖预定义的表格结构,适合结构化数据和复杂查询,但扩展性有限。NoSQL提供灵活的非结构化数据存储(如JSON),无统一查询语言,但能横向扩展,适用于大规模、高并发场景。选择取决于应用需求和扩展策略。
112 1
|
21天前
|
SQL 关系型数据库 MySQL
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
【MySQL技术专题】「问题实战系列」深入探索和分析MySQL数据库的数据备份和恢复实战开发指南(8.0版本升级篇)
94 0
|
12天前
|
存储 关系型数据库 MySQL
MySQL基础入门:数据库操作全攻略
MySQL基础入门:数据库操作全攻略
44 0
|
12天前
|
关系型数据库 MySQL 数据库
卸载云服务器上的 MySQL 数据库
卸载云服务器上的 MySQL 数据库
30 0
|
16天前
|
SQL 关系型数据库 MySQL
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
轻松入门MySQL:深入学习数据库表管理,创建、修改、约束、建议与性能优化(3)
|
2天前
|
SQL 关系型数据库 MySQL
MySQL环境搭建——“MySQL数据库”
MySQL环境搭建——“MySQL数据库”