程序師世界是廣大編程愛好者互助、分享、學習的平台,程序師世界有你更精彩!
首頁
編程語言
C語言|JAVA編程
Python編程
網頁編程
ASP編程|PHP編程
JSP編程
數據庫知識
MYSQL數據庫|SqlServer數據庫
Oracle數據庫|DB2數據庫
 程式師世界 >> 數據庫知識 >> MYSQL數據庫 >> 關於MYSQL數據庫 >> mysql主從同步復制錯誤解決一例

mysql主從同步復制錯誤解決一例

編輯:關於MYSQL數據庫
蚊子今天下午搭了一主三從的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恢復了正常。

不過稍後蚊子使用/etc/init.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服務,發現一切恢復了正常。如果有人也出現類似的問題,不妨試試這個辦法吧。
  1. 上一頁:
  2. 下一頁:
Copyright © 程式師世界 All Rights Reserved