
Windows Server 2008 でマスターからマスターへのレプリケーションを実行しようとしています。マスター 1 のすべてのデータベースをマスター 2 に正常にレプリケートできます。ただし、マスター 2 で行われた変更をマスター 1 にレプリケートできません。後で、マスター 2 からポート 3306 を使用してマスター 1 に Telnet できるが、マスター 1 からマスター 2 に Telnet できないことがわかりました。
両方のマスターでnetstatをチェックすると、次の結果が見つかりました。パブリックIPを公開できなかったので、それぞれのIPにマスター1とマスター2という名前を付けました。
マスター1
C:\Users\XXXXX>netstat
Active Connections
Proto Local Address Foreign Address State
TCP Master 1:3306 Master 2:61566 ESTABLISHED
TCP Master 1:3389 My remote:56053 ESTABLISHED
TCP 127.0.0.1:3306 Master 1:60675 ESTABLISHED
TCP 127.0.0.1:3306 Master 1:60712 ESTABLISHED
TCP 127.0.0.1:60675 Master 1:3306 ESTABLISHED
TCP 127.0.0.1:60712 Master 1:3306 ESTABLISHED
マスター2
C:\Users\XXXX>netstat
Active Connections
Proto Local Address Foreign Address State
TCP Master 2:3389 My remote:56124 ESTABLISHED
TCP Master 2:61566 Master 1:3306 ESTABLISHED
TCP Master 2:61574 bil-sc-cm02:http ESTABLISHED
TCP 127.0.0.1:3306 Master 2:61562 ESTABLISHED
TCP 127.0.0.1:3306 Master 2:61563 ESTABLISHED
TCP 127.0.0.1:61562 Master 2:3306 ESTABLISHED
TCP 127.0.0.1:61563 Master 2:3306 ESTABLISHED
TCP 127.0.0.1:61573 Master 2:3306 TIME_WAIT
すべては、マスター 2 でポート 3306 がアクティブになっていないことを示しています。ここで解決策が必要です。どうすればわかりますか。あなたの小さな提案は私にとって何百万にもなります。
ありがとう
よろしくお願いいたします。
ウディヤン
答え1
「Telnet」は単に TCP 接続を確立できることを意味します。あまり重視しないでください。
より重要な情報は、netstat の出力にあります。ご覧のとおり、Master2 上の MySQL プロセスは、127.0.0.1 のみをリッスンしており、「Master 2」インターフェースはリッスンしていません。そのインターフェースをリッスンするように MySQL を構成する必要があります。
Linux システムでは、/etc/my.cnf を編集してbind-address
パラメータを 以外の値に変更し127.0.0.1
、MySQL を再起動します。Windows でこれを行う方法はよくわかりませんが、このパラメータを変更する同様の方法があるはずです (おそらく管理 GUI 経由でしょうか)。