このトピックでは、データベース接続エラーの一般的な原因と解決策について説明します。
エラー
ApsaraDB for OceanBase に接続できません。
原因
データベース接続は、次のいずれかの原因で失敗する可能性があります。
解決策
パブリック IP アドレスとプライベート IP アドレスを確認する
ApsaraDB for OceanBase コンソール にログインします。
[クラスタ] ページで、確認するクラスタを選択します。対象のクラスタ名をクリックして、[クラスタワークスペース] ページに移動します。
左側のナビゲーションウィンドウで、[テナント管理] をクリックして [テナント] ページに移動します。対象のテナント名をクリックして、[テナントワークスペース] ページに移動します。
[デプロイ ダイアグラム] セクションで、非公開 IP アドレスとパブリック IP アドレスを確認します。
説明テナントの作成時に、デフォルトでプライベート IP アドレスが適用されます。テナントをパブリックネットワーク経由で接続する必要がある場合は、パブリック IP アドレスを申請してください。
ホワイトリスト設定を確認する
ApsaraDB for OceanBase コンソール にログインします。
[クラスタ] ページで、確認するクラスタを選択します。対象のクラスタ名をクリックして、[クラスタワークスペース] ページに移動します。
左側のナビゲーションウィンドウで、[セキュリティ設定] をクリックします。
[ホワイトリストグループ] セクションの [セキュリティ設定] ページで、テスト接続のローカル IP アドレスまたは CIDR ブロックが追加されているかどうかを確認します。
説明現在、ApsaraDB for OceanBase のホワイトリストはクラスタレベルで有効になります。そのため、ホワイトリストはテナントタイプを識別したり、プライベート IP アドレスとパブリック IP アドレスを区別したりすることはできません。
ApsaraDB for OceanBase へのアクセス用にホワイトリストにパブリック IP アドレスまたはプライベート IP アドレスを指定する場合は、次のルールに注意してください。
プライベート IP アドレスからのアクセス: ホワイトリストで指定された CIDR ブロックは、ECS インスタンスのプライベート IP アドレスである必要があります。
パブリック IP アドレスからのアクセス: ホワイトリストで指定されたパブリック IP アドレスが、パブリックネットワーク上のデバイスを識別するために実際に使用されているものであることを確認してください。たとえば、IP アドレスが 127.0.0.1 の場合、どのデバイスもテナントにアクセスできません。
ホワイトリストグループを追加する方法の詳細については、「ホワイトリストグループ」をご参照ください。
アカウントパスワードを確認する
ApsaraDB for OceanBase コンソール にログインします。
左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、対象のクラスタ名をクリックして、[クラスタワークスペース] ページに移動します。
テナントリストで、対象のテナント名をクリックして、[テナントの詳細] ページに移動します。
左側のナビゲーションウィンドウで、[アカウント管理] をクリックします。
[アカウント管理] ページで、リストから対象アカウントを探し、[アクション] 列の [パスワードの変更] をクリックしてアカウントパスワードをリセットし、接続をリトライします。
説明データベースに接続するときは、パスワード文字列の両端にスペースを入力しないでください。また、非表示の文字がパスワードと一緒にコピーされて貼り付けられないようにしてください。
接続のテナントモードを確認する
ApsaraDB for OceanBase コンソール にログインします。
左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、対象のクラスタをクリックして、[クラスタワークスペース] ページに移動します。
[テナント] リストで対象のテナントをクリックして、Oracle または MySQL テナントの [テナントワークスペース] ページに移動します。
[テナントワークスペース] ページで、データベースにログオンする をクリックして OceanBase Developer Center (ODC) にログインします。
ODC ホームページの [プライベート接続] タブで、[接続の作成] をクリックします。
テナントのリージョン (パブリッククラウド) を指定します。接続モード (MySQL または Oracle) を指定します。
説明MySQL テナント: OBClient 接続文字列のフォーマット: obclient -h[テナント ドメイン名] -u[テナント ユーザー名] -P3306 -p[テナント パスワード]
OBClient 接続文字列のフォーマット: obclient -h[テナント ドメイン名] -u[テナント ユーザー名] -P1521 -p[テナント パスワード]
ECS クライアントのネットワークタイプを確認する
ECS クライアントのネットワークタイプが VPC であることを確認します。
ECS クライアントと ApsaraDB for OceanBase インスタンスのリージョンを確認する
ECS クライアントと ApsaraDB for OceanBase インスタンスが同じリージョンにあることを確認します。
ECS クライアントと ApsaraDB for OceanBase のテナントの VPC を確認する
プライベートネットワーク経由で ECS クライアントから ApsaraDB for OceanBase クラスターのテナントにアクセスするには、クライアントとテナントが同じ VPC を使用していることを確認してください。
これは、特別なツールを使用しない標準のクロス VPC 接続に必要です。
ApsaraDB for OceanBase テナントの VPC を表示します。
ApsaraDB for OceanBase コンソール にログインします。
左側のナビゲーションウィンドウで、[クラスタ] をクリックします。
[クラスタ] ページで、対象のクラスタ名をクリックして、[クラスタワークスペース] ページに移動します。
[テナント] リストで対象のテナントをクリックして、Oracle または MySQL テナントの [テナントワークスペース] に移動します。
基本情報セクションで、[ユーザー VPC] の値を表示します。
ECS クライアントの VPC を表示します。
ECS コンソールにログインします。
左側のナビゲーションウィンドウで、[インスタンスとイメージ] [インスタンス] を選択します。
[インスタンスの詳細] タブの [ネットワーク情報] セクションで、[VPC] の値を表示します。
ApsaraDB for OceanBase インスタンスの [ユーザー VPC] の値が、ECS クライアントの [VPC] の値と同じであることを確認します。