解决 Slave_SQL_Running: NO 问题(方案:数据库的备份)

实验环境:

server1和server2主从复制(基于GTID)已经搭建成功

server1:  172.25.66.1   master
server2:  172.25.66.2   slave

点击此处即可查看mysql主从复制搭建详细过程

需求:

现需要再加入一个server3结点,搭建一主两从

server3:  172.25.66.3  slave

问题:               IO连接失败

根据报错提醒,得知是主库server1和从库server3的数据不一致造成的

检查发现,server1和server3确实数据不一致

[root@server1 ~]# mysql -u root -p'hym19970818HYM#'
mysql> show databases;

[root@server3 ~]# mysql -u root -p'hym19970818HYM#'
mysql> show databases;

解决方案:

先将主库的数据备份出来,然后再导入从库即可

1.备份数据库

#备份所有数据库到2019.8.2.sql文件中
[root@server1 ~]# mysqldump -uroot -phym19970818HYM# --all-databases > 2019.8.2.sql

发现有警告:由于我这里搭建的基于GTID方式的主从复制,而GTID在一个数据库中是唯一的,当导入其他的库可能会重复,所有会有一个警告提醒。

根据警告提示,加上 --set-gtid-purged=OFF 参数即可。注意该警告不能忽略,否则会造成导入从库失败的严重后果。

[root@server1 mysql]# mysqldump -uroot -phym19970818HYM# --set-gtid-purged=OFF --all-databases > 2019.8.2.sql
mysqldump: [Warning] Using a password on the command line interface can be insecure.

虽然还剩一个警告,但该警告的意思是在命令行使用密码不安全,此警告可以忽略。

2.发送备份的数据库文件

[root@server1 mysql]# scp 2019.8.2.sql root@172.25.66.3:

3.导入数据库

[root@server3 ~]# mysql -uroot -phym19970818HYM# < 2019.8.2.sql
mysql: [Warning] Using a password on the command line interface can be insecure.
#测试: 有westos数据库,说明导入成功
[root@server3 ~]# mysql -u root -p'hym19970818HYM#'
mysql> show databases;

4.重启slave

mysql> stop slave;
Query OK, 0 rows affected (0.07 sec)

mysql> start slave;
Query OK, 0 rows affected (0.06 sec)

测试:

mysql> show slave status\G;

  • 6
    点赞
  • 18
    收藏
    觉得还不错? 一键收藏
  • 1
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值