如何在連線至我的 Amazon RDS 資料庫執行個體時解決問題?

2 分的閱讀內容
0

我無法連線到 Amazon Relational Database Service (Amazon RDS) 資料庫執行個體。

簡短描述

無法連線至 Amazon RDS 資料庫執行個體有許多根本原因。以下是一些較常見的原因:

  • RDS 資料庫執行個體處於可用以外的狀態,因此無法接受連線。
  • 連線到資料庫執行個體的來源沒有安全群組、網路存取控制清單 (ACL) 或本機防火牆中的授權存取權。
  • 使用錯誤的 DNS 名稱或端點連線到資料庫執行個體。
  • 多可用區資料庫執行個體容錯移轉,而次要資料庫執行個體使用不允許傳入連線的子網路或路由表。
  • 由於下列其中一個原因導致使用者驗證不正確:
    您在資料庫層級使用不正確的使用者名稱或密碼從資料庫用戶端存取執行個體。
    您沒有存取執行個體所需的資料庫權限。
    用戶端在與資料庫版本不相容的版本上執行。

**提示:**您可以使用下列疑難排解步驟來識別連線問題的來源。或者,您也可以使用 AWSSupport-TroubleshootConnectivityToRDS AWS Systems Manager Automation 文件為您診斷問題。此自動化文件可根據 Amazon Elastic Compute Cloud (Amazon EC2) 執行個體的主要 IP 地址來診斷網路 ACL。但是,暫時連接埠未經驗證。自動化文件也會根據 EC2 執行個體的主要 IP 地址來檢查安全群組,但該自動化不會檢查特定連接埠。如需詳細資訊,請參閱執行自動化

解決方案

確定您的資料庫執行個體處於可用狀態

如果您最近啟動或重新啟動了資料庫執行個體,請在 Amazon RDS 主控台中確認資料庫執行個體處於可用狀態。視資料庫執行個體的大小而定,資料庫執行個體最多可能需要 20 分鐘才可用於網路連線。

如果您的資料庫執行個體處於失敗狀態,請參閱為什麼我的 Amazon RDS 資料庫執行個體處於失敗狀態?

確保您的資料庫執行個體允許連線

確保來自連線至資料庫執行個體的來源流量不會被以下一或多個因素所控制:

  • **與資料庫執行個體相關聯的 Amazon Virtual Private Cloud (Amazon VPC) 安全群組。**如有必要,請將規則新增至與 VPC 相關聯的安全群組,以允許與資料庫執行個體內外來源相關的流量。您可以指定 IP 地址、IP 地址範圍或另一個 VPC 安全群組。如需關於 VPC 和資料庫執行個體的一般資訊,請參閱在 VPC 中存取資料庫執行個體的案例
  • **任何與資料庫執行個體關聯的資料庫安全群組。**如果資料庫執行個體不在 VPC 中,則執行個體可能使用資料庫安全群組來控制流量。更新資料庫安全群組,以允許來自用於連線的 IP 地址範圍或 Amazon EC2 安全群組的流量。
  • **VPC 以外的連線。**確保資料庫執行個體可公開存取,並且與公用子網路相關聯 (例如,路由表允許從網際網路閘道存取)。如需詳細資訊,請參閱在 VPC 中存取資料庫執行個體的案例
    如果您的資料庫執行個體位於私人子網路中,請務必使用 VPC 對等或 AWS Site-to-Site VPN 安全地連線到執行個體。使用 Site-to-Site VPN,可以設定客戶閘道,以允許您將 VPC 連線到遠端網路。您可以在來源 VPC 與執行個體的 VPC 之間建立對等連線,使用 VPC 對等從其 VPC 外部存取執行個體。也可以使用 Amazon EC2 執行個體作為堡壘 (跳躍) 主機
  • **網路 ACL。**網路 ACL 可作為在 VPC 特定子網路中資源的防火牆。如果在 VPC 中使用 ACL,請確保它們具有允許傳入和傳出流量的規則以往返資料庫執行個體。
  • **網路或本機防火牆。**請詢問您的網路管理員,確認您的網路是否允許流量往返於連接埠,而該連接埠是資料庫執行個體用於傳入和傳出通訊。
    注意: Amazon RDS 不接受網際網路控制訊息通訊協定 (ICMP) 流量,包括 ping。

潛在 DNS 名稱或端點問題疑難排解

連線到資料庫執行個體時,使用 Amazon RDS 主控台提供的 DNS 名稱 (端點)。請務必使用正確的端點。此外,請將端點以正確格式提供給用於連線到資料庫執行個體的用戶端。如需關於資料庫引擎連線以及如何在各種用戶端應用程式中使用端點的詳細資訊,請參閱開始使用 Amazon RDS

例如,從 VPC 內的 Amazon EC2 執行個體對資料庫執行個體端點使用 nslookup:

nslookup myexampledb.xxxx.us-east-1.rds.amazonaws.com
Server: xx.xx.xx.xx
Address: xx.xx.xx.xx#53

請參閱下列非授權答案的範例:

Name: myexampledb.xxxx.us-east-1.rds.amazonaws.com
Address: 172.31.xx.x

資料庫層級問題疑難排解

  • 確保使用正確的使用者名稱和密碼從資料庫用戶端存取執行個體。
  • 確保使用者具有連線到資料庫執行個體的資料庫權限。
  • 檢查 Amazon RDS 中是否有任何資源限流,例如 CPU 或記憶體爭用。此爭用可能會導致建立較新的執行個體連線時出現問題。
  • 確保執行個體尚未達到 max_connections 限制。

檢查與執行個體相關聯的路由表

建立多可用區部署時,您可以在不同的可用區域中啟動多個複本資料庫執行個體,以提高應用程式的容錯能力。確保與每個資料庫執行個體相關聯的子網路都與相同或類似的路由表相關聯。如果您的主要資料庫執行個體容錯移轉至與不同路由表相關聯的待命複本,則流量可能無法正確路由。即使此流量之前路由時沒有問題,也可能無法再正確地路由。

如需關於設定路由表的詳細資訊,請參閱設定路由表。如需關於多可用區部署的其他資訊,請參閱高可用性的多可用區部署

**注意:**如果您可以連線到資料庫執行個體但出現驗證錯誤,請參閱如何重設 RDS 資料庫執行個體的主使用者密碼?

驗證連線

執行下列命令之一來驗證您的連線:

telnet <RDS endpoint> <port number>
nc -zv <RDS endpoint> <port number>

如果 telnetnc 命令成功,則表示已建立網路連線。這表示該問題可能是因使用者對資料庫進行驗證而造成,例如使用者名稱和密碼。

相關資訊

無法連線至 Amazon RDS 資料庫執行個體

如何對使用 VPC 公有或私有子網路之 Amazon RDS 資料庫執行個體的連線問題進行疑難排解?

Amazon RDS 的安全性

使用 SSL/TLS 來加密資料庫執行個體的連線