このトピックでは、ApsaraDB RDS インスタンスへの接続障害を解決する方法について説明します。
一般的な接続エラー
ご自身の状況に一致するエラーメッセージを見つけ、対応する解決策に従ってください。
MySQL と MariaDB
エラーメッセージ | 原因 | 解決策 |
| ネットワーク接続の問題。 |
詳細については、「ソリューション」をご参照ください。 |
| IP アドレスホワイトリストの設定の問題。 | |
| ユーザー名またはパスワードが正しくありません。 | 接続情報でユーザー名とパスワードを確認してください。 |
| DNS サーバーがエンドポイントを解決できません。 |
説明 インスタンスに ping を実行して現在の IP アドレスを確認することはできますが、この IP を接続に使用しないでください。IP アドレスは、移行やプライマリ/セカンダリ スイッチオーバーなどのイベント中に変更される可能性があります。エンドポイントは静的であるため、常にエンドポイントを使用してください。 |
ERROR 2059 (HY000): Authentication plugin 'caching_sha2_password' cannot be loaded: /usr/xx/xx/caching_sha2_password.so: cannot open shared object file: No such file or directory | MySQL は |
|
| 非アクティブ状態が続いたため、接続がタイムアウトしました。 | これは、アイドル状態のクライアント接続がサーバーのタイムアウト期間 (MySQL の |
Access denied for user 'root'@'XXX' (using password: YES) to database 'XX' | ECS インスタンスからの接続は、 | デフォルトでは、MySQL の |
From XXX (172.17.XX.XX) icmp_seq=1 Destination Host Unreachable | RDS インスタンスのプライベート CIDR ブロックが ECS インスタンス上の別のサービスの CIDR ブロックと競合しているため、ECS インスタンスは RDS インスタンスのプライベートエンドポイントに ping を実行できません。 | 接続できない RDS インスタンスのプライベートエンドポイントに ping を実行すると "Destination Host Unreachable" が返される |
SQL Server
エラーメッセージ | 原因 | 解決策 |
Cannot connect to XXX. A network-related or instance-specific error occurred while establishing a connection to SQL Server. The server was not found or was not accessible. Verify that the instance name is correct and that SQL Server is configured to allow remote connections. (provider: TCP Provider, error: 0 - A connection attempt failed because the connected party did not properly respond after a period of time, or established connection failed because connected host has failed to respond.) (Microsoft SQL Server, Error: 10060 or 258) | ネットワーク接続の問題。 |
詳細については、「ソリューション」をご参照ください。 |
Cannot connect to XXX. A connection was successfully established with the server, but then an error occurred during the login process. (provider: TCP Provider, error: 0 - The specified network name is no longer available.) (Microsoft SQL Server, Error: 64) | IP アドレスホワイトリストの設定の問題。 | |
Logon failed for login 'user' due to trigger execution | 接続数の上限に達しました。 | |
cannot open user default database.Login failed | 接続ユーザーのデフォルトデータベースに、ApsaraDB RDS for SQL Server インスタンス上の関連ユーザーがいません。 | |
From XXX (172.17.XX.XX) icmp_seq=1 Destination Host Unreachable | RDS インスタンスのプライベート CIDR ブロックが ECS インスタンス上の別のサービスの CIDR ブロックと競合しているため、ECS インスタンスは RDS インスタンスのプライベートエンドポイントに ping を実行できません。 | 接続できない RDS インスタンスのプライベートエンドポイントに ping を実行すると "Destination Host Unreachable" が返される |
PostgreSQL
エラーメッセージ | 原因 | 解決策 |
Unable to connect to server: could not connect to server: Connection timed out (0x0000274C/10060)Is the server running on host XXX.rds.aliyuncs.com and acceptingTCP/IP connections on port XXX? | ネットワーク接続の問題。 |
詳細については、「ソリューション」をご参照ください。 |
| IP アドレスホワイトリストの設定の問題。 | |
FATAL: remaining connection slots are reserved for non-replication superuser connections | 接続数の上限に達しました。 | |
FATAL: password authentication failed for user "xxx". | パスワードが正しくありません。 | パスワードをリセットして、もう一度お試しください。 パスワードのリセット方法の詳細については、「パスワードのリセット」をご参照ください。 |
From XXX (172.17.XX.XX) icmp_seq=1 Destination Host Unreachable | RDS インスタンスのプライベート CIDR ブロックが ECS インスタンス上の別のサービスの CIDR ブロックと競合しているため、ECS インスタンスは RDS インスタンスのプライベートエンドポイントに ping を実行できません。 | 接続できない RDS インスタンスのプライベートエンドポイントに ping を実行すると "Destination Host Unreachable" が返される |
DMS 接続エラー
関連する操作については、DMS を使用して RDS MySQL データベースに接続する、DMS を使用して RDS SQL Server データベースに接続する、DMS を使用して RDS PostgreSQL データベースに接続する、およびDMS を使用して RDS MariaDB データベースに接続するをご参照ください。
アカウントのパスワードをリセットした場合は、再度 DMS にログインする必要があります。
エラーメッセージ | 原因 | 解決策 |
The MYSQL server is running with the --rds-deny-access option so it cannot execute this statement |
| ApsaraDB RDS コンソールにログインして、インスタンスがロックされているかどうかを確認してください。
|
Sorry, you cannot access this instance by using DMS at the moment. | インスタンスの所有者ではなく、ログオン権限が付与されていません。 | |
Please check the correctness of the endpoint, the network connectivity, and the IP address whitelist settings. | この問題は通常、セルフマネージド MySQL サーバーで発生します。考えられる原因は次のとおりです。
|
詳細については、「ソリューション」をご参照ください。 |
max_user_connections | RDS データベースへの接続数が上限に達しました。 | |
Unable to log on to the database due to an IP address whitelist issue. | DMS サービスの CIDR ブロックが RDS の IP アドレスホワイトリストに含まれていません。 |
ECS から内部ネットワーク経由での RDS へのアクセス不可
プライベートエンドポイントを使用して RDS インスタンスに接続するには、ECS インスタンスのプライベート IP アドレスを RDS インスタンスの IP アドレスホワイトリストに追加する必要があります。
説明IPアドレスホワイトリストを追加するには、RDS MySQL の IPアドレスホワイトリストを設定する、RDS SQL Server の IPアドレスホワイトリストを設定する、RDS PostgreSQL の IPアドレスホワイトリストを設定する、RDS MariaDB の IPアドレスホワイトリストを設定するをご参照ください。
ECS インスタンスのパブリック IP アドレスを RDS の IP アドレスホワイトリストに追加するだけでは、内部ネットワーク経由での接続は失敗します。
ECS インスタンスと RDS インスタンスが内部ネットワーク経由で通信するには、同じリージョンにある必要があります。同じリージョン内であれば、同じまたは異なるアベイラビリティーゾーンに配置できます。
ECS インスタンスと RDS インスタンスが同じリージョンにあることを確認します。
ECS インスタンスのリージョンを表示します。

RDS インスタンスのリージョンを表示します。

ECS インスタンスと RDS インスタンスが異なるリージョンにある場合、内部ネットワーク経由で直接通信することはできません。次のいずれかの方法を使用します。
方法1:
方法 2: ECS インスタンスが、RDS インスタンスのパブリックエンドポイントを使用して RDS インスタンスに接続します。この方法では、パフォーマンス、セキュリティ、安定性が低くなります。パブリックエンドポイントの申請方法の詳細については、MySQL のパブリックエンドポイントを申請する、SQL Server のパブリックエンドポイントを申請する、PostgreSQL のパブリックエンドポイントを申請する、または MariaDB のパブリックエンドポイントを申請するをご参照ください。
ネットワークタイプの確認
ECS インスタンスと RDS インスタンスが同じネットワークタイプ (両方とも VPC 内、または両方ともクラシックネットワーク内) であることを確認します。
ECS インスタンスのネットワークタイプを表示します。

RDS インスタンスのネットワークタイプを表示します。

一方のインスタンスがクラシックネットワークにあり、もう一方が VPC にある場合は、次のいずれかの方法を使用します。
シナリオ:ECS インスタンスは VPC 内にあり、RDS インスタンスはクラシックネットワーク内にあります。
方法1 (推奨):RDS インスタンスをクラシックネットワークから ECS インスタンスの VPC に移行してください。詳細については、「ネットワークタイプの変更」をご参照ください。
方法2:クラシックネットワーク内にある新しい ECS インスタンスを購入してください。ただし、VPC はセキュリティが強化されているため推奨されます。
説明ECS インスタンスを VPC からクラシックネットワークに移行することはできません。
方法 3: ECS インスタンスが、RDS インスタンスのパブリックエンドポイントを使用して接続する方法です。この方法は、パフォーマンス、セキュリティ、安定性が劣ります。パブリックエンドポイントをリクエストする方法については、MySQL のパブリックエンドポイントをリクエストする、SQL Server のパブリックエンドポイントをリクエストする、PostgreSQL のパブリックエンドポイントをリクエストする、または MariaDB のパブリックエンドポイントをリクエストするをご参照ください。
シナリオ:ECS インスタンスはクラシックネットワーク内にあり、RDS インスタンスは VPC 内にあります。
方法1 (推奨):ECS インスタンスをクラシックネットワークから RDS インスタンスが存在する VPC に移行してください。RDS インスタンスの VPC ID を確認するには、インスタンス詳細ページに移動し、[ネットワークタイプ] の横にある [接続詳細の表示] をクリックします。詳細については、「単一の ECS インスタンスの移行例」をご参照ください。
方法2:RDS インスタンスのネットワークタイプを VPC からクラシックネットワークに切り替えてください。ただし、VPC はクラシックネットワークよりもセキュリティが強化されています。VPC の使用を推奨します。
方法3:ClassicLink を有効にして、クラシックネットワークの ECS インスタンスを内部ネットワーク経由で VPC の RDS インスタンスに接続してください。
説明ClassicLink を有効にした後もネットワークが接続されない場合は、「ClassicLink 接続が確立された後のクラシックネットワークと VPC 間のネットワーク接続問題のトラブルシューティング」をご参照ください。
方法 4: ECS インスタンスは、RDS インスタンスのパブリックエンドポイントを使用して接続します。この方法は、パフォーマンス、セキュリティ、安定性が低いです。パブリックエンドポイントの申請方法の詳細については、MySQL のパブリックエンドポイントを申請する、SQL Server のパブリックエンドポイントを申請する、PostgreSQL のパブリックエンドポイントを申請する、または MariaDB のパブリックエンドポイントを申請するをご参照ください。
ECS インスタンスと RDS インスタンスの両方が VPC 内にある場合は、それらが同じ VPC 内にあることを確認します。
ECS インスタンスの VPC ID を表示します。

RDS インスタンスのネットワークタイプを表示します。

異なる VPC にある場合は、次のいずれかの方法を使用します。
方法1 (推奨):RDS インスタンスを ECS インスタンスが存在する VPC に移行します。詳細については、「ApsaraDB RDS インスタンスの VPC と vSwitch の変更」をご参照ください。
方法2:CEN を使用して2つの VPC を接続します。
方法 3: ECS インスタンスは、RDS インスタンスのパブリックエンドポイントを使用して接続します。この方法は、パフォーマンス、セキュリティ、安定性の点で劣ります。パブリックエンドポイントの申請方法については、MySQL パブリックエンドポイントを申請する、 SQL Server パブリックエンドポイントを申請する、 PostgreSQL パブリックエンドポイントを申請する、または MariaDB パブリックエンドポイントを申請するをご参照ください。
ECS インスタンスと RDS インスタンスが同じ VPC とリージョンにあるにもかかわらず、パブリックエンドポイント (プライベートエンドポイントではない) を使用してのみ接続でき、ping と telnet の両方が失敗する場合は、「ルーティングの問題により ECS インスタンスが RDS インスタンスに接続できない」をご参照ください。
インターネット経由での RDS へのアクセス不可
パブリックエンドポイントの確認
RDS インスタンスのパブリックエンドポイントを使用していることを確認します。このエンドポイントは、ApsaraDB RDS コンソールの [データベース接続] ページで確認できます。

ローカルデバイスのパブリック IP アドレスが IP アドレスホワイトリストに追加されていることの確認
重要ローカルデバイスのパブリック IP アドレスは変更される場合があります。たとえば、パブリック IP アドレスが動的な場合、IP アドレスの変更によって接続障害が発生する可能性があります。安定した接続のためには、プライベート接続を使用するか、IP アドレスホワイトリストに十分な広さのパブリック CIDR ブロックを設定してください。
ローカルデバイスの正しいパブリック IP アドレスが RDS IP アドレスホワイトリストに追加されていることを確認してください。トラブルシューティングを行うには、データベースの IP アドレスホワイトリストに一時的に
0.0.0.0/0を追加してください。この変更後にデータベースに正常にアクセスできる場合、IP アドレスホワイトリストが正しく設定されていないことを意味します。以下の方法でローカルデバイスのパブリック IP アドレスを取得し、IP アドレスホワイトリストに追加できます。詳細については、「」「」「」「」「ApsaraDB RDS for MySQL の IP アドレスホワイトリストを設定する」、 「ApsaraDB RDS for SQL Server の IP アドレスホワイトリストを設定する」、 「ApsaraDB RDS for PostgreSQL の IP アドレスホワイトリストを設定する」、または「ApsaraDB RDS for MariaDB の IP アドレスホワイトリストを設定する」をご参照ください。
詳細については、次のトピックをご参照ください。
クロスアカウントアクセス
ECS インスタンスと RDS インスタンスが異なる Alibaba Cloud アカウントにある場合は、次のいずれかの方法で接続してください。
方法1 (推奨):VPC ピアリング接続を使用します。
方法2:RAM ロールを使用します。
方法 3: ECS インスタンスから、RDS インスタンスのパブリックエンドポイントを使用して接続します。 この方法は、パフォーマンス、セキュリティ、および安定性の点で劣ります。 パブリックエンドポイントの申請方法の詳細については、MySQL インスタンスのパブリックエンドポイントを申請する、SQL Server インスタンスのパブリックエンドポイントを申請する、PostgreSQL インスタンスのパブリックエンドポイントを申請する、または MariaDB インスタンスのパブリックエンドポイントを申請するをご参照ください。
関連ドキュメント
対象製品
ApsaraDB RDS