目的:
192.168.100.20服務器對192.168.100.10服務器上的MySQL數據庫進行備份。
1、配置MySQL服務器
1)100.10MySQL服務器登錄MySQL創建兩個數據庫
[root@centos01 ~]# mysql -uroot -ppwd@123
mysql> create database liyanxin;
mysql> create database wangzhaojun;
2)liyanxin數據庫創建表,寫入數據
mysql> create table liyanxin.liyanxin (姓名 char(6),性別 char(5),年齡 tinyint,電話 char(11));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into liyanxin.liyanxin values ('bob','男','18','11111111111');
Query OK, 1 row affected (0.00 sec)
mysql> insert into liyanxin.liyanxin values ('tom','女','20','22222222222');
Query OK, 1 row affected (0.00 sec)
mysql> select * from liyanxin.liyanxin;
+--------+--------+--------+-------------+
| 姓名 | 性別 | 年齡 | 電話 |
+--------+--------+--------+-------------+
| bob | 男 | 18 | 11111111111 |
| tom | 女 | 20 | 22222222222 |
+--------+--------+--------+-------------+
2 rows in set (0.00 sec)
3)wangzhaojun數據庫創建表,寫入數據
mysql> create table wangzhaojun.wangzhaojun (姓名 char(6),性別 char(5),年齡 tinyint,電話 char(11));
Query OK, 0 rows affected (0.01 sec)
mysql> insert into wangzhaojun.wangzhaojun values ('bob','男','18','11111111111');
Query OK, 1 row affected (0.00 sec)
mysql> insert into wangzhaojun.wangzhaojun values ('tom','女','20','22222222222');
Query OK, 1 row affected (0.00 sec)
mysql> select * from wangzhaojun.wangzhaojun;
+--------+--------+--------+-------------+
| 姓名 | 性別 | 年齡 | 電話 |
+--------+--------+--------+-------------+
| bob | 男 | 18 | 11111111111 |
| tom | 女 | 20 | 22222222222 |
+--------+--------+--------+-------------+
2 rows in set (0.00 sec)
4)在100.10服務器上授權專門用來備份數據庫的賬號,並賦予相應的權限
mysql> grant select,lock tables on *.* to 'bob'@'192.168.100.%' identified by 'pwd@123';
Query OK, 0 rows affected (0.00 sec)
<!--備份數據庫需要賬號具有查看錶和鎖定表的權限-->
2、配置備份服務器
1)安裝MySQL客戶端,手動備份測試是否成功
[root@centos02 ~]# yum -y install mysql
[root@centos02 ~]# mysqldump -u bob -ppwd@123 -h 192.168.100.10 --databases liyanxin > liyanxin.sql
[root@centos02 ~]# ls
liyanxin.sql
2)編寫備份腳本
[root@centos02 ~]# mkdir -p /opt/backup <!--創建備份後的存放目錄-->
[root@centos02 ~]# vim mysql.sh <!--編寫shell腳本-->
#!/bin/bash
<!--定義數據庫連接、目標信息庫等信息:-->
user="bob" <!--授權的賬戶-->
pass="pwd@123" <!--授權賬戶的密碼-->
host="192.168.100.10" <!--目標服務器IP地址-->
conn="-u $user -p$pass -h $host"
data1="liyanxin" <!--備份的數據庫名字-->
data2="wangzhaojun" <!--備份的數據庫名字-->
bak="/opt/backup" <!--指定備份目錄-->
cmd="/usr/bin/mysqldump" <!--指定命令工具-->
time=`date +%Y-%m-%d-%H-%M` <!--定義時間變量-->
name_1="$data1-$time" <!--定義備份後的名字-->
name_2="$data2-$time" <!--定義備份後的名字-->
cd $bak <!--切換至備份目錄下-->
$cmd $conn --databases $data1 > $name_1.sql <!--備份爲.sql文件-->
$cmd $conn --databases $data2 > $name_2.sql <!--備份爲.sql文件-->
/bin/tar zcf $name_1.tar.gz $name_1.sql --remove > /dev/null <!--打包後刪除源文件-->
/bin/tar zcf $name_2.tar.gz $name_2.sql --remove > /dev/null <!--打包後刪除源文件-->
3)測試腳本備份是否成功
[root@centos02 ~]# ./mysql.sh
[root@centos02 ~]# cd /opt/backup/
[root@centos02 backup]# ls
liyanxin-2020-05-20-02-10.tar.gz wangzhaojun-2020-05-20-02-10.tar.gz
4)設置計劃任務實現自動備份
[root@centos02 ~]# mv mysql.sh /opt/backup/ <!--將腳本也移至備份目錄-->
[root@centos02 ~]# crontab -e <!--編輯計劃任務-->
*/5 * * * * /opt/backup/mysql.sh <!--每五分鐘備份一次-->
[root@centos02 ~]# systemctl status crond <!--確保crond服務已運行-->
● crond.service - Command Scheduler
Loaded: loaded (/usr/lib/systemd/system/crond.service; enabled; vendor preset: enabled)
Active: active (running) since 三 2020-05-20 01:20:56 CST; 37min ago
Main PID: 829 (crond)
CGroup: /system.slice/crond.service
└─829 /usr/sbin/crond -n
————————————本文到此結束,感謝觀看——————————————