全部產品
Search
文件中心

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

更新時間:Jun 25, 2024

本文介紹在各種情況下如何自助解決串連不上RDS的問題。

在搭建業務情境調試的過程中,經常會出現無法串連RDS執行個體的情況,很多時候都是由於網路類型不統一、白名單未放對應IP等導致的。以下為最常見的原因和解決辦法。

網路類型不同

  • ECS執行個體採用Virtual Private Cloud,RDS執行個體採用傳統網路

    • 解決辦法一(推薦):將RDS執行個體從傳統網路切換為VPC,具體操作請參見切換網路類型

      說明

      切換後,兩者必須處於同一個VPC,才能內網互連。

    • 解決辦法二:重新購買傳統網路的ECS執行個體(ECS執行個體不支援從VPC遷移到傳統網路)。但是VPC比傳統網路更安全,建議您使用VPC。

    • 解決辦法三:ECS執行個體使用RDS執行個體的公網串連地址串連RDS執行個體,即通過公網串連RDS執行個體。這種方式的效能、安全性、穩定性較差。

  • ECS執行個體採用傳統網路,RDS執行個體採用Virtual Private Cloud

    • 解決辦法一(推薦):將ECS執行個體從傳統網路遷移到VPC。

      說明

      切換後,兩者必須處於同一個VPC,才能內網互連。

    • 解決辦法二:將RDS執行個體從VPC切換為傳統網路。但是VPC比傳統網路更安全,建議您使用VPC。

    • 解決辦法三:使用ClassicLink功能,使傳統網路的ECS執行個體可以和VPC中的雲資源通過內網互連。

    • 解決辦法四:ECS執行個體使用RDS執行個體的公網串連地址串連RDS執行個體,即通過公網串連RDS執行個體。這種方式的效能、安全性、穩定性較差。

Virtual Private Cloud不同

Virtual Private Cloud是基於阿里雲構建的一個隔離的網路環境,專用網路之間邏輯上徹底隔離,所以當ECS和RDS執行個體的網路類型都是專用網路時,還需要保證所屬的專用網路也相同,才能內網互連。

  • 解決辦法一(推薦):將RDS執行個體遷移到ECS執行個體所在的VPC。

    具體操作:參見切換Virtual Private Cloud和虛擬交換器切換網路類型(先將RDS執行個體的網路類型從VPC切換到傳統網路,再切換回VPC)。

  • 解決辦法二:在兩個VPC之間建立雲企業網

  • 解決辦法三:通過公網互連。這種方式的效能、安全性、穩定性較差。

地區不同

ECS執行個體和RDS執行個體位於不同的地區時,無法直接通過內網互連。

  • 解決辦法一:將原執行個體申請退款,重新購買。

  • 解決辦法二:ECS執行個體和RDS執行個體的網路類型都設定為VPC,同時在兩個VPC之間建立雲企業網

  • 解決辦法三:通過外網互連。這種方式的效能、安全性、穩定性較差。

IP白名單設定有誤

  • 由於白名單設定中只有預設地址127.0.0.1。該地址表示不允許任何裝置訪問RDS執行個體。因此需在白名單中添加對端的IP地址,具體操作請參見設定IP白名單

  • 白名單設定成了0.0.0.0,正確格式為0.0.0.0/0。

    重要

    0.0.0.0/0表示允許任何裝置訪問RDS執行個體,請謹慎使用。

  • 如果開啟了高安全白名單,需進行如下檢查:

    • 如果使用的是專用網路的內網串連地址,請確保ECS內網IP地址添加到了專用網路的分組。

    • 如果使用的是傳統網路的內網串連地址,請確保ECS內網IP地址添加到了傳統網路的分組。

    • 如果通過公網串連,請確保裝置公網IP地址添加到了傳統網路的分組(專用網路的分組不適用於公網)。

  • 您在白名單中添加的裝置公網IP地址可能並非裝置真正的出口IP地址。原因如下:

    • 公網IP地址不固定,可能會變動。

    • IP地址查詢工具或網站查詢的公網IP地址不準確。

網域名稱解析失敗或錯誤

網域名稱伺服器出現故障或修改過網卡配置,可能會導致網域名稱解析失敗或錯誤。此時可以通過pingtelnet測試到RDS的連通性,命令如下。

ping <網域名稱>
telnet <網域名稱> <連接埠號碼>
            

樣本

ping測試telnet測試

如果失敗的話,可以通過修改網卡設定檔來解決問題,具體步驟如下:

  1. 修改對應的網卡設定檔。

    vi /etc/sysconfig/network-scripts/<網卡設定檔名>
    說明

    <網卡設定檔名>:ECS伺服器使用的網卡,可以通過ifconfig查看尾碼名,預設為ifcfg-eth0。

  2. 在設定檔末尾加入如下配置。

    DNS1=100.100.XX.XX
    DNS2=100.100.XX.XX
    說明

    如果已經有DNS1DNS2配置,請將IP地址修改為如上所示。

    修改dns

  3. 使用如下命令重啟Network服務。

    sudo systemctl restart network
  4. 使用如下命令查看是否修改成功。

     cat /etc/resolv.conf

    修改dns成功

執行個體狀態一直處於“建立網路連接”中

通過控制台進入工作清單,可對執行個體的當前任務重試,或修改切換時間。詳情請參見工作清單