mysql 主从数据不一致 Slave_SQL_Running: No 解决方法

前端之家收集整理的这篇文章主要介绍了mysql 主从数据不一致 Slave_SQL_Running: No 解决方法前端之家小编觉得挺不错的,现在分享给大家,也给大家做个参考。

在slave服务器上通过如下命令

MysqL> show slave status\G;

显示如下情况:

Slave_IO_Running: Yes
Slave_sql_Running: No

表示slave不同步

 

解决方法一(忽略错误,继续同步):

1、先停掉slave

MysqL> stop slave;

2、跳过错误步数,后面步数可变

MysqL> set global sql_slave_skip_counter=1; 

3、再启动slave

MysqL> start slave;

4、查看同步状态

MysqL> show slave status\G;

  

解决方法二(重新做主从,完全同步):

1、先进入主库进行锁表,注意窗口不要关闭

MysqL> flush table with read lock;

2、把数据进行备份

> MysqLdump -uroot -p --opt -R 数据库 > /data/bak.sql

3、再新开个窗口,查看主数据库信息

MysqL> show master status;
+------------------+----------+--------------+------------------+-------------------+
| File             | Position | Binlog_Do_DB | Binlog_Ignore_DB | Executed_Gtid_Set |
+------------------+----------+--------------+------------------+-------------------+
| MysqL-bin.000005 |     1158 |              |                  |                   |
+------------------+----------+--------------+------------------+-------------------+

4、在从库上停止slave

MysqL> stop slave;

5、导入备份的数据文件

MysqL> source /data/bak.sql

6、重置同步

MysqL> reset slave;

7、重新设置同步节点

MysqL> CHANGE MASTER TO
MASTER_HOST='192.168.137.233',MASTER_PORT=3306,MASTER_USER='sync',MASTER_PASSWORD='123456',MASTER_LOG_FILE='MysqL-bin.000005',MASTER_LOG_POS=1158;

host,port,user,password请根据你的主库设置相应修改,log_file和log_pos根据主库中master status相应修改

8、开启slave

MysqL> start slave;

9、查看slave状态

MysqL> show slave status\G;

显示如下信息则表示正常

Slave_IO_Running: Yes
Slave_sql_Running: Yes

10、对主数据库解锁

MysqL> unlock tables;

11、再次在主库中添加修改数据,看从库数据是否同步。

猜你在找的MySQL相关文章