全部產品
Search
文件中心

ApsaraDB RDS:解決無法串連執行個體問題

更新時間:Apr 16, 2025

本文介紹如何解決無法串連RDS的問題。

串連失敗的常見報錯

請根據現場情況與具體的報錯資訊,選擇對應的解決方案。

MySQL或MariaDB

錯誤資訊

報錯原因

解決辦法

  • ERROR 2003 (HY000): Can't connect to MySQL server on 'XXX'(10038或10060或110)

  • 無法串連到資料庫:XXX

網路互連問題。

  • 確保ECS執行個體和RDS執行個體處於同一個地區。

  • 確保ECS執行個體和RDS執行個體的網路類型相同。

  • 確保ECS和RDS執行個體在同一個專用網路中。

  • 檢查ECS執行個體的內網IP地址是否已添加到RDS執行個體的白名單。

更多資訊,請參見解決方案

  • ERROR 1045 (HY000): #28000ip not in whitelist

  • ERROR 2801 (HY000): #RDS00ip not in whitelist, client ip is XXX

  • ERROR 2013 (HY000): Lost connection to MySQL server at ‘reading authorization packet’, system error:110

白名單設定問題。

檢查執行個體白名單

  • ERROR 1045 (28000): Access denied for user ‘XXX’@’XXX’ (using password: YES或NO)

  • ERROR 1045 (28000): Authentication Failed For RDS maybe username or password is incorrect

使用者名稱或密碼錯誤。

請檢查串連資訊中的使用者名稱和密碼:

  • RDS不提供root帳號,您需要自行建立帳號。具體操作請參見建立帳號

  • 如果密碼中包含特殊字元,可能需要加上單引號。例如,在命令中使用-p 'XXX'

  • 如果忘記密碼,您可以在控制台的帳號管理頁面修改密碼。

    說明

    修改密碼後,新密碼可能需要數分鐘才生效。

  • ERROR 2005 (HY000): Unknown MySQL server host ‘XXX’ (110或11004)

  • SQLSTATE[HY000] [2002] php_network_getaddresses: getaddrinfo failed: Name or service not known

  • Name or service not known

  • unknown server host

DNS伺服器無法解析地址。

  1. 檢查輸入的RDS串連地址(字串)是否正確。以下為可能的出錯原因:

    • 地址輸入錯誤,正確的格式為rm-XXX.XXX.rds.aliyuncs.com。

    • 使用外網地址,但是外網地址已經被手動釋放。

    • 程式允許輸入的地址長度有限,地址被程式截斷。

  2. 如果RDS串連地址輸入正確但是仍然提示上述錯誤資訊,那麼請將DNS伺服器位址修改為阿里雲的DNS伺服器位址。

    • 如果是通過內網(傳統網路)訪問,改為10.143.22.116和10.143.22.118。

    • 如果是通過內網(VPC)訪問,改為100.100.2.136和100.100.2.138。

    • 如果是通過公網訪問,改為223.5.5.5和223.6.6.6。

說明

通過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的`interactive_timeout``wait_timeout`)到期導致的。您可以檢查資料庫的配置,並根據需要調整這些逾時設定,以防止非預期的中斷連線。

SQL Server

錯誤資訊

報錯原因

解決辦法

無法串連到XXX。Cannot connect to XXX。在與SQL Server建立串連時出現與網路相關的或特定於執行個體的錯誤。未找到或無法訪問伺服器。請驗證執行個體名稱是否正確並且 SQL Server 已配置為允許遠端連線。(provider: TCP Provider, error: 0 - 由於串連方在一段時間後沒有正確回覆或串連的主機沒有反應,串連嘗試失敗。)(Microsoft SQL Server,錯誤: 10060或258)

網路互連問題。

  • 確保ECS執行個體和RDS執行個體處於同一個地區。

  • 確保ECS執行個體和RDS執行個體的網路類型相同。

  • 確保ECS和RDS執行個體在同一個專用網路中。

  • 檢查ECS執行個體的內網IP地址是否已添加到RDS執行個體的白名單。

  • 檢查ECS執行個體中配置的RDS內網地址和連接埠是否正確。

更多資訊,請參見解決方案

無法串連到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?

網路互連問題。

  • 確認串連方式,選擇合適的串連地址。在控制台的資料庫連接中,可以擷取對應的串連地址。

    • 內網串連:通過與RDS執行個體位於同一地區且網路類型相同的ECS串連RDS執行個體,其中,如果網路類型為Virtual Private Cloud,則專用網路ID也必須相同。

    • 外網串連:通過本地裝置或與不滿足內網串連的條件的ECS串連RDS執行個體。

      說明

      外網地址需要手動開通,操作方法請參見開通外網地址

  • 檢查用戶端所在的ECS或本地裝置的IP地址是否已添加到白名單中,或者白名單是否配置錯誤。詳細操作請參見設定白名單

    說明

    通過curl ipinfo.io/ip可以查詢本地用戶端的公網IP地址。

  • 如果開啟了高安全白名單模式,檢查是否將白名單添加到了正確的分組。

更多資訊,請參見解決方案

  • server closed the connection unexpectedly This probably means the server terminated abnormally before or while processing the request.

  • Error connecting to the server: FATAL: no pg_hba.conf entry

白名單設定問題。

設定白名單

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執行個體到期。

  • RDS執行個體的磁碟滿。

登入阿里雲RDS控制台,查看執行個體是否被鎖定:

對不起,您暫時無法通過DMS訪問該執行個體。

您不是該執行個體的擁有者,該執行個體的擁有者並未向您授予登入許可權。

授權阿里雲帳號

請檢查串連地址的正確性、網路暢通情況、白名單設定

該問題一般發生於自建的MySQL伺服器,問題原因可能是如下幾點:

  • ECS執行個體的防火牆限制或自建MySQL伺服器所在主機的防火牆限制。

  • ECS安全性群組未對DMS開放。

  • MySQL伺服器未啟動。

  • MySQL伺服器只允許root賬戶本地登入。

  • 檢查ECS或MySQL的防火牆規則。

  • 將DMS的IP加入到ECS安全性群組中。

  • 使用root賬戶登入MySQL。

更多資訊,請參見解決方案

max_user_connections

RDS資料庫的串連數滿。

解決RDS串連數被佔滿的問題

因白名單問題無法登入資料庫

RDS白名單中沒有添加DMS服務的IP位址區段。

添加DMS服務的IP位址區段

ECS執行個體無法通過內網訪問RDS執行個體

  • 通過RDS內網地址串連RDS執行個體前,需要先將ECS內網IP添加到RDS白名單。

    說明
  • ECS執行個體和RDS執行個體需要位於同一地區才能內網互連。可以是同一地區的相同或不同可用性區域。

    • 請確保ECS執行個體和RDS執行個體處於同一個地區:

      1. 查看ECS執行個體所在地區。

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

    • 如果ECS執行個體和RDS執行個體位於不同的地區,則無法直接通過內網互連,請參見以下方法進行處理:

檢查網路類型

  1. 請確保ECS執行個體和RDS執行個體的網路類型相同(都是專用網路或都是傳統網路)。

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

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

  2. 如果一個是傳統網路,一個是專用網路,請參見以下方法進行處理:

    • ECS執行個體採用專用網路而RDS執行個體採用傳統網路的情境:

      • 方法一(推薦):將RDS執行個體從傳統網路切換為專用網路(需要切換到待串連的ECS執行個體所在的VPC)。具體操作,請參見切換網路類型

      • 方法二:重新購買傳統網路的ECS執行個體。但是VPC比傳統網路更安全,建議您使用VPC。

        說明

        ECS執行個體不支援從VPC遷移到傳統網路。

      • 方法三:ECS執行個體使用RDS執行個體的公網地址串連RDS執行個體,這種方式的效能、安全性、穩定性較差。如何申請外網地址,請參見申請MySQL外網地址申請SQL Server外網地址申請PostgreSQL外網地址申請MariaDB外網地址

    • ECS執行個體採用傳統網路而RDS執行個體採用專用網路的情境:

  3. 如果ECS執行個體與RDS執行個體的網路類型都是專用網路,請確認它們位於同一個專用網路。

    • 查看ECS執行個體的專用網路ID。

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

  4. 如果專用網路不同,請參見以下方法進行處理:

  5. 如果ECS和RDS執行個體在同一個VPC和地區下,無法通過內網地址串連RDS執行個體(外網地址可以串連)、ping和telnet都失敗。請參見由於路由問題導致ECS無法串連RDS執行個體處理。

無法通過外網訪問RDS執行個體

ECS執行個體與RDS執行個體跨帳號互訪

如果您的ECS執行個體與RDS執行個體不在同一帳號下,可以通過以下方式串連:

相關文檔

RDS串連失敗的排查方法

適用於

雲資料庫RDS