自创脚本对mysql的数据库就进行冷备份
这里是一个mysql数据库服务器的配置文件-mysqlhost.cfg,一个是脚本来执行备份mysqldump.sh
脚本之所以用这个名字,是因为精髓就是mysqldump这个mysql自带的备份导出工具

这里,我们用到两台centos8,一台是mysql8.0服务器(192.168.31.122/24),另一台是我用来模拟执行脚本的电脑
关于mysql8.0数据库服务器的安装,请参考我之前的文章去安装mysql8.0,这里我就不废话了



创建测试数据库trippal和ctrip
创建数据库表trippal.testsh

创建数据库表ctrip.testshell

接下来是配置文件和脚本文件的内容
mysqlhost.cfg

这里的data_dir是你的mysql数据库的数据库存储位置
本来想写中文注释的,但是脚本编辑器不支持,所以我只好写英文了

我们来试一下看看脚本文件第一次执行的效果,假设我们输入的数据库账号密码是错误的,看看会如何

可以看到是失败的,因为密码不对,所以数据库连接不上了,哦,对了,这里必须允许mysql的root可以远程登录,因为我用的是root账户,如果你用·其它账户,也要确保授权该用户远程登录。
授权SQL语句是
grant all privileges on xx.xx to user@远程主机的IP identified by “password”;
flush privileges; #这个是刷新权限

mysql> create user 'root'@'192.168.31.121' identified by 'xxxxxxxxx';
Query OK, 0 rows affected (0.07 sec)
mysql> grant all privileges on trippal.* to 'root'@'192.168.31.121';
Query OK, 0 rows affected (0.01 sec)
mysql> grant all privileges on ctrip.* to 'root'@'192.168.31.121';
Query OK, 0 rows affected (0.01 sec)
mysql> flush privilege;
ERROR 1064 (42000): You have an error in your SQL syntax; check the manual that corresponds to your MySQL server version for the right syntax to use near 'privilege' at line 1
mysql> flush privileges;
Query OK, 0 rows affected (0.04 sec)
哦,对了,还需要关闭selinux和防火墙,不然还是无法远程登录mysql服务器,其实也可以开放相应的mysql端口3306等,这样也不需要关闭防火墙

结果执行成功,接着我们来验证是否成功
进入/var/lib/mysql下看看有没有对应的文件夹,文件夹里是否有对应的数据库文件

我们可以看到192.168.31.122的两个数据库文件都已经成功复制到这一台121机器上了
实验成功!