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)

  希望能帮助到大家。如有任何疑问或者指正,也欢迎留言评论。

原文地址:https://www.cnblogs.com/xll970105/p/9900601.html