MySQL 錯誤訊息無法顯示 解法(於 Replication 設定)

MySQL Replication 設定完成, 但是一直無法正常運作(無法正常與 Master sync), 而 MySQL 都沒有任何錯誤訊息出現, 不知道問題到底出在哪~

註: 下述環境於 Debian Linux.

環境設定、檢查

檢查
  • Master 設定 allow replication slave
  • Master 3306 是否有通(bind = 127.0.0.1 有沒有移除)
  • SLAVE server-id 是否是唯一的.
  • SLAVE CHANGE MASTER .. 是否正確.
錯誤訊息

slave_mysql> show slave status;

  • Slave_IO_Running: No
  • Last_Errno: 0
  • 沒有任何錯誤訊息, stop / reset /start slave / restart / kill mysql 等等都做過, 都沒有任何錯誤訊息. (/var/log/mysql.err 都是空的)

打開 MySQL Log

  1. vim /etc/mysql/my.cnf 打開

    log = /var/log/mysql/mysql.log

  2. 重新啟動 MySQL 後, 於 /var/log/mysql/mysql.log 看到

    Connect Out repl_slave@MASTER_DOMAIN:3306

打開 MySQL Error Message

  1. vim /etc/mysql/my.cnf 加入此行

    log-error = /var/log/mysql.err

  2. 重新啟動 MySQL 後, 於 /var/log/mysql.err 總算 看到錯誤訊息. (預設錯誤訊息 不會顯示, 被 mysql.err 騙了~ XD)

    [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 m ust be used on slave but this does not always make sense; please check the manual before using it).

不過我的 MySQL Slave 的 server-id 並沒有重覆, 卻出現此訊息.

解法

  • 把 server-id 換個數字, 重新啟動 MySQL 即可.

為了這行 log-error = /var/log/mysql.err, 忙了好久. 🙁

作者: Tsung

對新奇的事物都很有興趣, 喜歡簡單的東西, 過簡單的生活.

發表迴響

這個網站採用 Akismet 服務減少垃圾留言。進一步了解 Akismet 如何處理網站訪客的留言資料