首页 > 代码库 > mysql主从复制问题之主从两端binlog日志不同步解决方案

mysql主从复制问题之主从两端binlog日志不同步解决方案

主操作:

  1. 进入主的数据库查看状态:

mysql> show master statusG;

*************************** 1. row ***************************

File: mysql-bin.000001

Position: 604

Binlog_Do_DB:

Binlog_Ignore_DB:

1 row in set (0.01 sec)

 

从操作:

  1. 进入从的数据库查看状态:

mysql> show slave statusG;

*************************** 1. row ***************************

Slave_IO_State:

Master_Host: 192.168.1.187

Master_User: slave001

Master_Port: 3306

Connect_Retry: 60

Master_Log_File: mysql-bin.000001

Read_Master_Log_Pos: 800

Relay_Log_File: mysqld-relay-bin.000001

Relay_Log_Pos: 4

Relay_Master_Log_File: mysql-bin.000001

Slave_IO_Running: No

Slave_SQL_Running: Yes

Replicate_Do_DB:

Replicate_Ignore_DB:

Replicate_Do_Table:

Replicate_Ignore_Table:

Replicate_Wild_Do_Table:

Replicate_Wild_Ignore_Table:

Last_Errno: 0

Last_Error:

Skip_Counter: 0

Exec_Master_Log_Pos: 800

Relay_Log_Space: 106

Until_Condition: None

Until_Log_File:

Until_Log_Pos: 0

Master_SSL_Allowed: No

Master_SSL_CA_File:

Master_SSL_CA_Path:

Master_SSL_Cert:

Master_SSL_Cipher:

Master_SSL_Key:

Seconds_Behind_Master: NULL

Master_SSL_Verify_Server_Cert: No

Last_IO_Errno: 1236

Last_IO_Error: Got fatal error 1236 from master when reading data from binary log: ‘Client requested master to start replication from impossible position‘

Last_SQL_Errno: 0

Last_SQL_Error:

1 row in set (0.00 sec)

会发现从状态与主状态不一样(主要观察Master_Log_File和Read_Master_Log_Pos),就是binlog日志不同步

  1. 现在需要使主从的数据先同步,然后再使binlog日志同步方能解决问题

(1).把主数据库停止更新,查看binlog(file和positon),打包放到从服务器上恢复

(2).停止从的slave,修改binlog(依据查看主的file和position),然后启动slave,最后把主的锁解除

具体操作已在《mysql主从同步配置》中做详细说明,可前往查看

mysql主从复制问题之主从两端binlog日志不同步解决方案