天天看點

MySQL雙主io線程起不來_解決master and slave have equal MySQL server UUIDs導緻Slave_IO_thread起不來問題...

今天在部署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/,如需轉載,請注明出處,否則将追究法律責任。