Shell脚本对Mysql数据库远程备份

编写Shell脚本对Mysql数据库进行备份

  • 主Mysql服务器操作
    • 备份Mysql数据库操作
      • 编写Shell脚本对主Mysql数据库进行备份
        • 通过计划任务来进行自动备份

准备工作:
两台 Centos7
一台担任主Mysql服务器——192.168.1.10
一台担任备份Mysql服务器——192.168.110

主Mysql服务器操作

需要安装Mysql数据库
不会安装Mysql数据库的看
https://blog.csdn.net/weixin_46902396/article/details/108171060
1.检查Mysql数据库端口是否开启

netstat -anpt | grep 3306

2.给Mysql数据库创建密码

mysqladmin -u root -p password '123'

Shell脚本对Mysql数据库远程备份_第1张图片
3.进入Mysql数据库创建库

mysql -u root -p123       进入Mysql数据库
create database test1;    创建test1和test2库
create database test2;  

4.数据库用户授权

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

Shell脚本对Mysql数据库远程备份_第2张图片

备份Mysql数据库操作

1.准备工作

mount /dev/cdrom /media/cdrom                  挂光盘
yum -y install mariadb                         安装系统自带Mysql数据库
which mysql                                    查看mysql路径
mysql -u zhangsan -p123 -h 192.168.1.10        测试远程登陆mysql
which  mysqldump                               查看mysqldump备份工具路径

Shell脚本对Mysql数据库远程备份_第3张图片
2.使用mysqldump进行远程备份测试

mysqldump -u zhangsan -p123 -h 192.168.1.10 test1 > test1.sql

在这里插入图片描述

编写Shell脚本对主Mysql数据库进行备份

mkdir /mysql.bak     创建备份目录
cd  /mysql.bak       进入目录
vim mysql.sh         编写脚本
#!/bin/bash
#定义数据库连接,目标库信息
my_user1="zhangsan"
my_user2="lisi"
my_pass1="123"
my_pass2="123456"
my_host="192.168.1.10"
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

Shell脚本对Mysql数据库远程备份_第4张图片

chmod +x mysql.sh    赋予mysql.sh脚本可执行权限
./mysql.sh           执行该脚本

Shell脚本对Mysql数据库远程备份_第5张图片

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

date	           查看当前系统时间
crontab  -e        编辑计划任务

Shell脚本对Mysql数据库远程备份_第6张图片
实验完成

你可能感兴趣的:(shell,shell,mysql,centos)