IP ホワイトリストが正しく構成されていない場合、データベース接続に失敗する可能性があります。
IP ホワイトリストの構成の確認
Telnet を使用して、IP ホワイトリストが正しく構成されているかどうかを確認できます。接続に成功すると、次のような出力が返されます:
$telnet 11.xxx.xxx.22 4444
Trying 11.xxx.xxx.22...
Connected to 11.xxx.xxx.22.
Escape character is '^]'.
N
5.7.32-logc"B%0f7%0`I++'EVdWSB3mysql_native_password
^]
クライアントがデータベースサービスから MySQL ハンドシェイクメッセージを受信し、メッセージに MySQL のバージョン番号 (前述の出力では 5.7.32) が表示される場合、IP ホワイトリストは正しく構成されています。それ以外の場合は、IP ホワイトリストの構成に誤りがあります。この問題を解決するには、「Set Whitelists (moved to parent)」をご参照のうえ、ホワイトリストを正しく構成してください。
IP ホワイトリストの構成ミスのトラブルシューティング
データベースクラスターに接続する際は、まずプライマリ IP アドレスへの接続性を確認します。プライマリ IP アドレスに到達できない場合、問題は IP ホワイトリストが原因である可能性があります。Telnet または tcpdump ツールを使用して、具体的な原因を特定できます。
Enterprise Edition パブリック VIP のホワイトリストの誤り
-
現象:Enterprise Edition クラスターのパブリック仮想 IP アドレス (VIP) にアクセスしようとすると、Telnet 接続がタイムアウトで失敗します。
[xxx /xxx/gitlab/aegis/src] $telnet 11.xxx.xxx.93 3306 Trying 11.xxx.xxx.93... -
クライアント側でパケットキャプチャを実行すると、クライアントが TCP 3 ウェイ ハンドシェイクの SYN メッセージを繰り返し再送信していることが確認できます。
Enterprise VPC および Standard エンドポイントのホワイトリストの誤り
-
現象:Enterprise Edition クラスターの VPC エンドポイント、または Standard Edition クラスターの任意のエンドポイント (パブリックまたは VPC) にアクセスすると、Telnet 接続は確立されますが、クライアントは MySQL ハンドシェイクメッセージを受信しません。
[xxx /u01/mysql80_current] $telnet 11.xxx.xxx.22 4444 Trying 11.xxx.xxx.22... Connected to 11.xxx.xxx.22. Escape character is '^]'. -
クライアント側でパケットキャプチャを実行すると、TCP 3 ウェイ ハンドシェイク中の SYN-ACK および最終 ACK メッセージが繰り返し再送信されていることが確認できます。
IP ホワイトリストの問題の解決
一時的なテストとして、ホワイトリストに 0.0.0.0/0 CIDR ブロックを追加し、サービスへのアクセスを試みてください。接続に成功した場合、ホワイトリストの構成に誤りがあると判断できます。
その後、正しいエントリをホワイトリストに追加し、一時的な 0.0.0.0/0 CIDR ブロックを削除する必要があります。ホワイトリストの構成方法については、「Set Whitelists (moved to parent)」をご参照ください。