今天在做主从同步时,显示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)
希望能帮助到大家。如有任何疑问或者指正,也欢迎留言评论。