模糊複製錯誤程式碼 2005
2015-04-07 13:49:53 23758 [ERROR] Slave I/O: error connecting to master 'replication'@master-host:3306' - retry-time: 60 retries: 1, Error_code: 2005
這是在嘗試將 master 更改為從先前執行的複制之後。唯一的變化是主控主機。我想把主人換成的新人是從同一個實際主人那裡跑的。
這是使用 GTID,所以我正在執行 auto position=1 而不是使用 master_log_file master_log_position 值。
我可以通過 mysql 客戶端使用 mysql.slave_master_info 中顯示的複制憑據連接到新的主伺服器。Show grants 確認它有複製從屬*。*
我在新主伺服器的錯誤文件中沒有看到任何關於拒絕連接嘗試的資訊,但我確實看到從伺服器上的重試錯誤嘗試。
顯示從屬狀態\G 沒有什麼更有用的了
在感到沮喪之後,我做了一個改變主人回到原來的主人,它開始執行得很好。
我不知道如何繼續解決這個問題。
更改 master_host 後,您必須重做其他所有操作
它在MySQL Documentation on CHANGE MASTER TO中這麼說
如果您指定 MASTER_HOST 或 MASTER_PORT 選項,則從伺服器假定主伺服器與以前不同(即使選項值與其目前值相同)。在這種情況下,主伺服器二進制日誌文件名的舊值和position 被認為不再適用,因此如果您未在語句中指定 MASTER_LOG_FILE 和 MASTER_LOG_POS,則 MASTER_LOG_FILE=’’ 和 MASTER_LOG_POS=4 將被靜默附加到它。
只需再次指定所有內容
STOP SLAVE; CHANGE MASTER TO master_host='IP_of_new_host', master_port=3306, master_user='repluser', master_password='repluserpasswowrd', master_heartbeat_period=1, master_auto_position=1 ; START SLAVE;
試一試 !!!
如果您通過主機名配置了目標主機,則表明從主機在該主機名上存在 DNS 解析問題。主機名是使用從機的作業系統的 DNS 解析器解析的,因此如果您從其他地方嘗試連接到它,與從從機本身的命令行連接相比,這一事實並不一定意味著太多。
您可以通過一個簡單的測試來證明或反駁這一點——通過 IP 地址連接到主站。如果它有效,則確認它是不正確的主機名或 DNS 在解析該主機名時出於某種原因無法正常工作。
另外,為了確認這一點,我在不是從屬的 MySQL 5.6.21 機器上嘗試了以下操作——將主控更改為我控制的域中不存在的主機名,添加了所需的最少配置
START SLAVE IO_THREAD;
,*瞧,*我可以複製這個健康)狀況:2015-04-08 00:44:15 18140 [ERROR] Slave I/O: error connecting to master 'user@nonexistent-host.my-domain.domain:3306' - retry-time: 60 retries: 1, Error_code: 2005