关于MySQL主从里遇到Slave_SQL_Running:no/Slave_io_Running:YES 解决

前言

我是遇到的问题属于开发初期搭建同步以后,再进行对主机添加新database造成从机sql-running:no,处理办法比较暴力,适合搭建初期,不适合生产过程中的解决办法。

在这里插入图片描述在这里插入图片描述这里不难看出我的从机里没找到新数据库,但是binlog是同步的!

前期准备

在主机my.cnf中加上binlog-do-db=newdb然后对主机里的mysql服务进行重启。

在这里插入图片描述
然后在从机里用root用户登录mysql停掉slave服务 stop slave;

借助第三方插件备份或者数据库自带备份程序数据

  • 处理思路
    从机找不到新database,那么就将主机总新添加的新database拷贝并刷新日志到从机,再进行slave中继binlog配置重配。最后达成同步操作。

这里对新数据库里的数据进行移植,利用了第三方插件,我这里用的是sqlyog(sqlyog我要恰饭!!)
在这里插入图片描述

  • 因为只要数据忽略存储过程啥的就只导出表,转储前刷新日志!导出存储过程第三方可能会出错还是别用了。这里特别提出批评!不过我用的sqlyog版本低~
    只要slave找得到database和数据那就没啥问题了。
  • 下面利用远程登录账户在sqlyog中对从机进行数据导入。
  • 回到主机,root用户登录mysql查询master状态 show master status;
    从机里重新设置slave
CHANGE MASTER 
TO 
MASTER_HOST='主机IP',
MASTER_USER='xxx',
MASTER_PASSWORD='xxx',
MASTER_LOG_FILE='File名字',
MASTER_LOG_POS=Position数字;
slave start;
show slave status\G

在这里插入图片描述

虽然解决了同步问题,但是由于同步的binlog被刷新了,不知道会不会影响其他database数据,所以我认为这个解决办法只适合搭建初期数据不大的情况!

测试

将主机上的my.cnf中配置的binlog-do-db=newdb注释掉然后重启主机,对任意主机上的database进行表的curd操作,在从机上的数据同步数据成功!图就不贴了,亲测有效!

注意事项:如果主库里面有初始化数据,那么在主从复制前需要把数据先导入到从库以保证初始一致性

发布了37 篇原创文章 · 获赞 17 · 访问量 1847

猜你喜欢

转载自blog.csdn.net/qq_37714755/article/details/104322263
今日推荐