2020-03-10

自创脚本对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机器上了

实验成功!

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容