今天在部署mysql主從複制時遇到個小問題
在配置完所有步驟後,想在主庫插入資料測試從庫又沒複制
結果發現從庫沒有反應。
這時查了一下從庫的狀态,如下:
[email protected]:mysql.sock 04:43:35 [lala]>show slave status\G
*************************** 1. row ***************************
Slave_IO_State:
Master_Host: 192.168.161.128
Master_User: repl
Master_Port: 3306
Connect_Retry: 60
Master_Log_File: mybinlog.000004
Read_Master_Log_Pos: 331
Relay_Log_File: mysql-relay-bin.000001
Relay_Log_Pos: 4
Relay_Master_Log_File: mybinlog.000004
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: 331
Relay_Log_Space: 120
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: 1593
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
Last_SQL_Errno: 0
Last_SQL_Error:
Replicate_Ignore_Server_Ids:
Master_Server_Id: 203306
Master_UUID:
Master_Info_File: /data/mysql/mytest_3306/data/master.info
SQL_Delay: 0
SQL_Remaining_Delay: NULL
Slave_SQL_Running_State: Slave has read all relay log; waiting for the slave I/O thread to update it
Master_Retry_Count: 86400
Master_Bind:
Last_IO_Error_Timestamp: 161207 04:40:45
Last_SQL_Error_Timestamp:
Master_SSL_Crl:
Master_SSL_Crlpath:
Retrieved_Gtid_Set:
Executed_Gtid_Set:
Auto_Position: 0
1 row in set (0.00 sec)
從我标粗體部分的資訊可以清楚地看到Slave_IO_Running參數為no,這說明Slave_IO_thread沒有起來
錯誤原因也給出了Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server UUIDs; these UUIDs must be different for replication to work.
master和slave有同一個UUIDs導緻線程停止,該線程需要将兩個線程改成不一樣才能工作。
這時查一下兩個庫的UUIDs
[email protected]:mysql.sock 06:13:40 [(none)]>show variables like '%UUID%'
-> ;
+---------------+--------------------------------------+
| Variable_name | Value |
+---------------+--------------------------------------+
| server_uuid | af3609-b426-11e6-9ff3-000c29d55626 |
+---------------+--------------------------------------+
1 row in set (0.00 sec)
發現都是af3609-b426-11e6-9ff3-000c29d55626
這時修改删除slave庫中的auto.cnf檔案即可,該檔案就在mysql的datadir下
因為UUID參數讀的就是該檔案下的内容,删除後,mysql會重新生成新的uuid。或者不删除直接改變該檔案的幾個數字。
删除完後重新開機mysql伺服器,再開啟主從複制,發現狀态正常了
ps:兩個auto.cnf一樣的原因是因為我的從庫是直接拷貝主庫,是以auto.cnf自然相同了!!!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/31386161/viewspace-2129967/,如需轉載,請注明出處,否則将追究法律責任。