本文介紹如何解決無法連接RDS的問題。
連接失敗的常見報錯
請根據現場情況與具體的報錯信息,選擇對應的解決方法。
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 | 連接數滿。 | |
cannot open user default database.Login failed | RDS SQL Server登錄用戶對應的默認數據庫下沒有關聯的用戶。 |
DMS連接RDS數據庫報錯
相關操作,請參見通過DMS連接RDS SQL Server數據庫。
錯誤信息 | 報錯原因 | 解決辦法 |
The MYSQL server is running with the --rds-deny-access option so it cannot execute this statement |
| |
對不起,您暫時無法通過DMS訪問該實例。 | 您不是該實例的擁有者,該實例的擁有者并未向您授予登錄權限。 | |
因白名單問題無法登錄數據庫 | RDS白名單中沒有添加DMS服務的IP地址段。 |
ECS實例無法通過內網訪問RDS實例
通過RDS內網地址連接RDS實例前,需要先將ECS內網IP添加到RDS白名單。
說明如何添加白名單,請參見設置RDS SQL Server白名單。
如果僅添加ECS外網IP地址到RDS白名單,則無法通過內網連接RDS。
ECS實例和RDS實例需要位于同一地域才能內網互通。可以是同一地域的相同或不同可用區。
請確保ECS實例和RDS實例處于同一個地域:
查看ECS實例所在地域。
查看RDS實例所在地域。
如果ECS實例和RDS實例位于不同的地域,則無法直接通過內網互通,請參見以下方法進行處理:
方法一:
方法二:ECS實例使用RDS實例的公網連接地址連接RDS實例,這種方式的性能、安全性、穩定性較差。如何申請外網地址,請參見申請SQL Server外網地址。
檢查網絡類型
請確保ECS實例和RDS實例的網絡類型相同(都是專有網絡或都是經典網絡)。
查看ECS實例的網絡類型。
查看RDS實例的網絡類型。
如果一個是經典網絡,一個是專有網絡,請參見以下方法進行處理:
ECS實例采用專有網絡而RDS實例采用經典網絡的場景:
方法一(推薦):將RDS實例從經典網絡切換為專有網絡(需要切換到待連接的ECS實例所在的VPC)。具體操作,請參見切換網絡類型。
方法二:重新購買經典網絡的ECS實例。但是VPC比經典網絡更安全,建議您使用VPC。
說明ECS實例不支持從VPC遷移到經典網絡。
方法三:ECS實例使用RDS實例的公網地址連接RDS實例,這種方式的性能、安全性、穩定性較差。如何申請外網地址,請參見申請SQL Server外網地址。
ECS實例采用經典網絡而RDS實例采用專有網絡的場景:
方法一(推薦):將ECS實例從經典網絡遷移到待連接的RDS實例所在的VPC,可在RDS實例詳情頁網絡類型右側單擊查看連接詳情查看RDS實例所在VPC ID。具體操作請參見單ECS遷移示例。
方法二:將RDS實例從VPC切換為經典網絡。但是VPC比經典網絡更安全,建議您使用VPC。
方法三:開通ClassicLink功能,使經典網絡的ECS實例可以和VPC中的RDS實例通過內網互通。
說明若開通ClassicLink功能后網絡不通,請參見建立ClassicLink連接后經典網絡和VPC網絡不通的排查思路。
方法四:ECS實例使用RDS實例的公網地址連接RDS實例,這種方式的性能、安全性、穩定性較差。如何申請外網地址,請參見申請SQL Server外網地址。
如果ECS實例與RDS實例的網絡類型都是專有網絡,請確認它們位于同一個專有網絡。
查看ECS實例的專有網絡ID。
查看RDS實例的網絡類型。
如果專有網絡不同,請參見以下方法進行處理:
方法一(推薦):將RDS實例遷移到ECS實例所在的VPC。具體操作,請參見切換專有網絡VPC和虛擬交換機。
方法二:在兩個VPC之間建立云企業網。
方法三:ECS實例使用RDS實例的公網地址連接RDS實例。這種方式的性能、安全性、穩定性較差。如何申請外網地址,請參見申請SQL Server外網地址。
如果ECS和RDS實例在同一個VPC和地域下,無法通過內網地址連接RDS實例(外網地址可以連接)、ping和telnet都失敗。請參見由于路由問題導致ECS無法連接RDS實例處理。
無法通過外網訪問RDS實例
確保連接RDS實例時使用的是RDS的外網地址。您可以在RDS控制臺的數據庫連接頁面查看RDS的外網地址。
確保已將正確的本地設備公網IP地址添加到RDS的IP白名單。請在數據庫的白名單中臨時添加0.0.0.0/0
,如果設置后可以正常訪問,說明是白名單設置存在問題。您可以通過以下方法獲取正確的本地設備公網IP地址,并將該地址添加到白名單中。如何添加白名單,請參見設置RDS SQL Server安全組。
外網IP可能發生變化,例如外網IP是動態的,變化后導致無法連接。如需保持穩定連接,建議使用內網連接并添加內網IP到白名單。
更多教程,請參見:
相關文檔
適用于
云數據庫RDS