1. 程式人生 > >GTID做mysql主從時報錯

GTID做mysql主從時報錯

今天在做主從同步時,顯示slave_IO執行緒為NO ,並且報如下錯誤

Slave_IO_Running: No
...
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.

  我們可以從報錯資訊中發現,顯示的是UUID重複,因為我做實驗的時候是在一臺機器上安裝了mysql,然後克隆了三臺機器,所以四臺機器的UUID重複,那麼我們要怎麼修改MYSQL server UUID呢?

  首先,我們可以通過如下命令檢視機器的UUID

mysql> select @@server_uuid;
+-----------------------------------------------+
| @@server_uuid                                 |
+-----------------------------------------------+
| 0d89fdbc-df2a-11e8-9f80-000c296b4958          |
+-----------------------------------------------+
1 row in set (0.00 sec)
      

  如果發現有機器的UUID重複,那麼我們首先可以通過如下的命令生成一個新的UUID,然後去修改配置檔案

mysql> select uuid();
+--------------------------------------+
| uuid()                               |
+--------------------------------------+
| 09bcda8f-df2d-11e8-9aeb-000c296b4958 |
+--------------------------------------+
1 row in set (0.00 sec)

  複製UUID ,然後在MYSQL資料目錄的資料目錄中找到auto.cnf檔案,將裡面的UUID換成之前生成的UUID,並且重複MySQL服務,即可完成同步。如果忘記資料目錄的位置,也可以在資料庫中通過如下命令檢視。

mysql> show variables like 'datadir';
+---------------+--------------+
| Variable_name | Value        |
+---------------+--------------+
| datadir       | /data/mysql/ |
+---------------+--------------+
1 row in set (0.03 sec)

  希望能幫助到大家。如有任何疑問或者指正,也歡迎留言評論。