master and slave have equal MySQL server ids

1603 ワード

蚊は今日の午后、主三従のmysqlをかけてコピーしました.その結果、すべてのサーバーが配置され、次のようなエラーが報告されたことに気づきました.
 
  
Last_IO_Error: Fatal error: The slave I/O thread stops because master and slave have equal MySQL server ids; these ids must be different for replication to work (or the --replicate-same-server-id option must be used on slave but this does not always make sense; please check the manual before using it).

上のserverからidはメインと同じで、上から/etc/my.cnfのserver_id=1この行は注釈していません(下のコピー部分でserver_idを設定しました)ので、すぐにこの行を注釈してmysqlを再起動して、同じエラーを報告していることに気づきました.
次のコマンドを使用してserver_を表示します.id
 
  
mysql> show variables like 'server_id';
+---------------+-------+
| Variable_name | Value |
+---------------+-------+
| server_id | 1 |
+---------------+-------+
1 row in set (0.00 sec)

mysqlはmyから来ていないことに気づいた.cnfファイルでserver_を更新id、それなら手動で修正するしかない
 
  
mysql> set global server_id=2; # my.cnf
mysql> slave start;

このように実行すると、slaveは正常に戻ります.
でも後で蚊が使うd/mysqld restart mysqlサービスを再起動し、slaveステータスを表示し、上記のエラーが発生したことを発見し、server_を表示します.idはこの数値がまた1に回復したことを発見した.
その後蚊はまた再確認しました/etc/my.cnfの内容は、このファイルの問題ではないことを確認してgoogleに行って調べてみると、mysqlが起動すると/etc/my.を検索します.cnf、DATADIR/my.cnf,USER_HOME/my.cnf.
そこで私は実行しました
 
  
find / -name "my.cnf"

なんと/usr/local/mysqlというディレクトリの下でmyを発見しました.cnfファイル、そこで蚊はこのファイルを削除して、それからmysqlサービスを再起動して、すべて正常に回復したことを発見します.似たような問題がある人もいるなら、この方法を試してみてはいかがでしょうか.