Mysql

通過 DNS 故障進行 MySQL 複製

  • March 7, 2012

當機器配置為使用主機名而不是 IP 地址時,我在使用複制時遇到了一些問題。“skip-name-resolve”關閉。

如果我使用 IP 地址,一切都很好。使用 DNS 名稱,一切都會停止。

關於大師

使用以下命令配置複製:

GRANT REPLICATION SLAVE ON *.* TO 'repluser'@'slavename.internal.domain' IDENTIFIED BY 'repl_pwd';

在奴隸上

從連接配置如下:

change master to
   master_host='mastername',
   master_user='repluser',
   master_password='repl_pwd',
   master_log_file='mastername.000001',
   master_log_pos=1;

我得到的錯誤

啟動複製從屬伺服器時,日誌文件顯示以下消息:

120127 14:07:48 [Note] Slave SQL thread initialized, starting replication in log 'mastername.000001' at position 4, relay log './mysql-relay-bin.000001' position: 4
120127 14:07:48 [ERROR] Slave I/O: error connecting to master 'repluser@mastername:3306' - retry-time: 60  retries: 86400, Error_code: 1130

如果我然後嘗試使用來自客戶端機器的命令行連接:

mysql -h mastername -u repluser -prepl_pwd

我得到錯誤:

ERROR 1130 (HY000): Host 'the.ip.address.here' is not allowed to connect to this MySQL server

我真的希望有人可以幫助我解決我的域解析問題!!!

忘記這個問題我感覺很糟糕!!!

我已經找到並解決了以下問題。

將 DNS 名稱添加到 DNS 時,未創建相應的反向查找。

這導致 MySQL 無法執行從 IP 地址到正確 DNS 名稱的反向查找,因此拒絕連接。

因此,我們添加了一組從 IP 地址到 DNS 名稱的反向查找,FLUSH HOSTS;在所有 MySQL 機器上執行,一切都開始工作了。

我們要求所有連接都使用 DNS 名稱,因為我們的災難恢復解決方案位於一個單獨的數據中心和一個幾乎相同的虛擬機場中,但所有機器的 IP 地址僅稍作修改。如果/當我們完全故障轉移到另一個數據中心時,所有軟體和通信都將“正常工作”,因為 DNS 解析將始終根據數據中心提供正確的地址。

您只需要注意不要讓兩個(或更多)名稱從同一個 IP 地址反向查找,因為無法保證會返回兩個名稱中的哪一個 - 有時您的連接會正常工作,而其他時候則不會噸。

希望這可以幫助有同樣問題的人!

問候,

戴夫

引用自:https://dba.stackexchange.com/questions/11775