本文介紹如何解決無法串連RDS的問題。
串連失敗的常見報錯
請根據現場情況與具體的報錯資訊,選擇對應的解決方案。
MySQL或MariaDB
錯誤資訊 | 報錯原因 | 解決辦法 |
| 網路互連問題。 |
更多資訊,請參見解決方案。 |
| 白名單設定問題。 | |
| 使用者名稱或密碼錯誤。 | 請檢查串連資訊中的使用者名稱和密碼: |
| DNS伺服器無法解析地址。 |
說明 通過ping命令可以查看RDS執行個體的當前IP地址,但不建議使用IP地址進行串連,因為IP地址可能會因遷移或主備切換而變化。建議始終使用連接字串,因為它保持不變。 |
[Note] [MY-010914] [Server] Aborted connection 671541 to db: 'XXX' user: 'XXX' host: 'XXX' (The client was disconnected by the server because of inactivity.). | 資料庫連接斷開。 | 由於用戶端長時間未發送任何請求,伺服器的互動逾時設定(如MySQL的 |
SQL Server
錯誤資訊 | 報錯原因 | 解決辦法 |
無法串連到XXX。Cannot connect to XXX。在與SQL Server建立串連時出現與網路相關的或特定於執行個體的錯誤。未找到或無法訪問伺服器。請驗證執行個體名稱是否正確並且 SQL Server 已配置為允許遠端連線。(provider: TCP Provider, error: 0 - 由於串連方在一段時間後沒有正確回覆或串連的主機沒有反應,串連嘗試失敗。)(Microsoft SQL Server,錯誤: 10060或258) | 網路互連問題。 |
更多資訊,請參見解決方案。 |
無法串連到XXX。Cannot connect to XXX。 已成功與伺服器建立串連,但是在登入過程中發生錯誤。(provider:TCP提供者,error:0-指定的網路名稱不再可用。)(Microsoft SQL Server,錯誤:64) | 白名單設定問題。 | |
Logon failed for login 'user' due to trigger execution | 串連數滿。 |
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? | 網路互連問題。 |
更多資訊,請參見解決方案。 |
| 白名單設定問題。 | |
FATAL: remaining connection slots are reserved for non-replication superuser connections | 串連數滿。 | |
FATAL: password authentication failed for user "xxx". | 密碼錯誤。 | 重設密碼後重試。 重設密碼具體操作,請參見重設密碼。 |
DMS串連RDS資料庫報錯
相關操作,請參見通過DMS串連RDS MySQL資料庫、通過DMS串連RDS SQL Server資料庫、通過DMS串連RDSPostgreSQL資料庫、通過DMS串連RDS MariaDB資料庫。
如果重設了帳號密碼,需要重新登入DMS。
錯誤資訊 | 報錯原因 | 解決辦法 |
The MYSQL server is running with the --rds-deny-access option so it cannot execute this statement |
| 登入阿里雲RDS控制台,查看執行個體是否被鎖定:
|
對不起,您暫時無法通過DMS訪問該執行個體。 | 您不是該執行個體的擁有者,該執行個體的擁有者並未向您授予登入許可權。 | |
請檢查串連地址的正確性、網路暢通情況、白名單設定 | 該問題一般發生於自建的MySQL伺服器,問題原因可能是如下幾點:
|
更多資訊,請參見解決方案。 |
max_user_connections | RDS資料庫的串連數滿。 | |
因白名單問題無法登入資料庫 | RDS白名單中沒有添加DMS服務的IP位址區段。 |
ECS執行個體無法通過內網訪問RDS執行個體
通過RDS內網地址串連RDS執行個體前,需要先將ECS內網IP添加到RDS白名單。
說明如何添加白名單,請參見設定RDS MySQL白名單、設定RDS SQL Server白名單、設定RDS PostgreSQL白名單、設定RDS MariaDB白名單。
如果僅添加ECS外網IP地址到RDS白名單,則無法通過內網串連RDS。
ECS執行個體和RDS執行個體需要位於同一地區才能內網互連。可以是同一地區的相同或不同可用性區域。
請確保ECS執行個體和RDS執行個體處於同一個地區:
查看ECS執行個體所在地區。

查看RDS執行個體所在地區。

如果ECS執行個體和RDS執行個體位於不同的地區,則無法直接通過內網互連,請參見以下方法進行處理:
方法一:
方法二:ECS執行個體使用RDS執行個體的公網串連地址串連RDS執行個體,這種方式的效能、安全性、穩定性較差。如何申請外網地址,請參見申請MySQL外網地址、申請SQL Server外網地址、申請PostgreSQL外網地址、申請MariaDB外網地址。
檢查網路類型
請確保ECS執行個體和RDS執行個體的網路類型相同(都是專用網路或都是傳統網路)。
查看ECS執行個體的網路類型。

查看RDS執行個體的網路類型。

如果一個是傳統網路,一個是專用網路,請參見以下方法進行處理:
ECS執行個體採用專用網路而RDS執行個體採用傳統網路的情境:
方法一(推薦):將RDS執行個體從傳統網路切換為專用網路(需要切換到待串連的ECS執行個體所在的VPC)。具體操作,請參見切換網路類型。
方法二:重新購買傳統網路的ECS執行個體。但是VPC比傳統網路更安全,建議您使用VPC。
說明ECS執行個體不支援從VPC遷移到傳統網路。
方法三:ECS執行個體使用RDS執行個體的公網地址串連RDS執行個體,這種方式的效能、安全性、穩定性較差。如何申請外網地址,請參見申請MySQL外網地址、申請SQL Server外網地址、申請PostgreSQL外網地址、申請MariaDB外網地址。
ECS執行個體採用傳統網路而RDS執行個體採用專用網路的情境:
方法一(推薦):將ECS執行個體從傳統網路遷移到待串連的RDS執行個體所在的VPC,可在RDS執行個體詳情頁網路類型右側單擊查看串連詳情查看RDS執行個體所在VPC ID。具體操作請參見單ECS遷移樣本。
方法二:將RDS執行個體從VPC切換為傳統網路。但是VPC比傳統網路更安全,建議您使用VPC。
方法三:開通ClassicLink功能,使傳統網路的ECS執行個體可以和VPC中的RDS執行個體通過內網互連。
說明若開通ClassicLink功能後網路不通,請參見建立ClassicLink串連後傳統網路和VPC網路不通的排查思路。
方法四:ECS執行個體使用RDS執行個體的公網地址串連RDS執行個體,這種方式的效能、安全性、穩定性較差。如何申請外網地址,請參見申請MySQL外網地址、申請SQL Server外網地址、申請PostgreSQL外網地址、申請MariaDB外網地址。
如果ECS執行個體與RDS執行個體的網路類型都是專用網路,請確認它們位於同一個專用網路。
查看ECS執行個體的專用網路ID。

查看RDS執行個體的網路類型。

如果專用網路不同,請參見以下方法進行處理:
方法一(推薦):將RDS執行個體遷移到ECS執行個體所在的VPC。具體操作,請參見切換Virtual Private Cloud和虛擬交換器。
方法二:在兩個VPC之間建立雲企業網。
方法三:ECS執行個體使用RDS執行個體的公網地址串連RDS執行個體。這種方式的效能、安全性、穩定性較差。如何申請外網地址,請參見申請MySQL外網地址、申請SQL Server外網地址、申請PostgreSQL外網地址、申請MariaDB外網地址。
如果ECS和RDS執行個體在同一個VPC和地區下,無法通過內網地址串連RDS執行個體(外網地址可以串連)、ping和telnet都失敗。請參見由於路由問題導致ECS無法串連RDS執行個體處理。
無法通過外網訪問RDS執行個體
確認外網串連地址
確保串連RDS執行個體時使用的是RDS的外網地址。您可以在RDS控制台的資料庫連接頁面查看RDS的外網地址。

確認本地裝置的公網IP地址是否已被添加至白名單
重要本地裝置的公網IP可能會發生變化,例如,當公網IP為動態時,其變更可能導致串連失敗。為確保串連的穩定性,建議使用內網串連,或在白名單中配置合理的公網IP段。
確保已將正確的本地裝置公網IP地址添加到RDS的IP白名單。如需進行排查,請在資料庫的白名單中臨時添加
0.0.0.0/0,如果設定後可以正常訪問,說明是白名單設定存在問題。您可以通過以下方法擷取正確的本地裝置公網IP地址,並將該地址添加到白名單中。如何添加白名單,請參見設定RDS MySQL白名單、設定RDS SQL Server白名單、設定RDS PostgreSQL白名單、設定MariaDB白名單。
更多教程,請參見:
ECS執行個體與RDS執行個體跨帳號互訪
如果您的ECS執行個體與RDS執行個體不在同一帳號下,可以通過以下方式串連:
方式一(推薦):藉助VPC對等串連,詳情請參見VPC對等串連。
方式二:使用RAM角色和權限原則,詳情請參見RAM角色。
方式三:ECS執行個體使用RDS執行個體的公網地址串連RDS執行個體。這種方式的效能、安全性、穩定性較差。如何申請外網地址,請參見申請MySQL外網地址、申請SQL Server外網地址、申請PostgreSQL外網地址、申請MariaDB外網地址。
相關文檔
適用於
雲資料庫RDS