Data Management (DMS) または MySQL クライアントが PolarDB for MySQL クラスターに接続できない場合、原因はほぼ常に以下の 4 つのいずれかです:IP ホワイトリストの設定不足または誤設定、データベースアカウントの権限不足、エンドポイントタイプの誤使用、ご利用の ECS インスタンスとクラスター間のネットワークタイプの不一致です。
IP ホワイトリストが未設定または誤設定
原因
クライアントの IP アドレスがホワイトリストに登録されていない場合、クラスターは接続をブロックします。主な原因は以下のとおりです:
デフォルトのホワイトリストには
127.0.0.1のみが含まれており、すべての外部アクセスがブロックされます。クライアントの IP アドレスがホワイトリストに追加されていません。
ホワイトリスト内の IP アドレス形式が無効です(例:
0.0.0.0ではなく0.0.0.0/0を使用する必要があります)。ホワイトリストに登録された IP アドレスが、クライアントの実際のアウトバウンド IP アドレスと一致していません。
解決方法
クライアントマシンのアウトバウンド IP アドレスを特定し、クラスターの IP ホワイトリストに追加します。手順については、「IP ホワイトリストの設定」をご参照ください。
IP 範囲には正しい CIDR 形式を使用してください。たとえば、すべての IP アドレスを許可する場合は
0.0.0.0/0を使用し、0.0.0.0を使用しないでください。
その他の IP ホワイトリストに関するトラブルシューティングについては、「IP ホワイトリストの問題のトラブルシューティング」をご参照ください。
データベースアカウントがない、または権限が不十分
原因
認証レイヤーで接続が拒否されます。これは以下のいずれかの場合に発生します:
クラスター上にデータベースアカウントが存在しません。
アカウントは存在しますが、対象データベースへのアクセス権限が付与されていません。
解決方法
アカウントが存在しない場合は、新規作成し、必要なデータベース権限を付与してください。手順については、「データベースアカウントの作成」をご参照ください。
アカウントは存在するもののアクセスが拒否される場合は、権限を更新してください:
特権アカウントの場合:「特権アカウントの権限のリセット」
標準アカウントの場合:「標準アカウントの権限の変更」
誤ったエンドポイントタイプの使用
原因
PolarDB クラスターには、非公開エンドポイントとパブリックエンドポイントの 2 種類のエンドポイントタイプがあります。ネットワーク環境に応じて適切でないエンドポイントタイプを使用すると、接続できません。
解決方法
クライアントの接続方法に合致するエンドポイントを使用してください:
| 接続方法 | 使用するエンドポイント |
|---|---|
| 仮想プライベートクラウド (VPC) 経由 | 非公開エンドポイント |
| インターネット経由 | パブリックエンドポイント |
クラスターのエンドポイントを確認するには、PolarDB コンソールのクラスター詳細ページを開いてください。
ECS と PolarDB 間のネットワークタイプの不一致
原因
ご利用の Elastic Compute Service (ECS) インスタンスがクラシックネットワーク上にあり、一方で PolarDB クラスターが仮想プライベートクラウド (VPC) 内に配置されている場合、異なるネットワークタイプ上のインスタンス同士では直接通信できません。
解決方法
以下のいずれかのオプションを選択してください:
ECS インスタンスを VPC へ移行(推奨):移行後、ECS インスタンスを PolarDB クラスターと同じ VPC 内に配置してください。手順については、「クラシックネットワークから VPC への ECS インスタンスの移行」をご参照ください。
ECS インスタンスと PolarDB クラスターは、必ず同一の VPC 内に配置してください。異なる VPC に配置しても、接続性の問題は解消されません。
ClassicLink の使用:「ClassicLink」を活用し、クラシックネットワーク上の ECS インスタンスと VPC 上の PolarDB クラスター間で内部ネットワーク接続を確立します。
パブリックエンドポイントの使用:ECS インスタンスからクラスターのパブリックエンドポイントを経由してインターネット接続を行い、PolarDB クラスターに接続します。この方法は、VPC 経由の接続と比較してパフォーマンスおよびセキュリティが劣ります。