主操作:
- 進入主的數據庫查看狀態:
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)
從操作:
- 進入從的數據庫查看狀態:
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日志不同步
- 現在需要使主從的數據先同步,然后再使binlog日志同步方能解決問題
(1).把主數據庫停止更新,查看binlog(file和positon),打包放到從服務器上恢復
(2).停止從的slave,修改binlog(依據查看主的file和position),然后啟動slave,最后把主的鎖解除
具體操作已在《mysql主從同步配置》中做詳細說明,可前往查看