本文為英文版的機器翻譯版本,如內容有任何歧義或不一致之處,概以英文版為準。
針對您的 RDS for PostgreSQL 執行個體連線進行疑難排解
錯誤 – 嚴重:資料庫名稱
不存在
如果您在連線時收到類似 FATAL: database
的鐠誤,請在 name
does not exist--dbname
選項中嘗試使用預設資料庫名稱 postgres。
錯誤 – 無法連線至伺服器:連線逾時
如果您無法連線至資料庫執行個體,常見的錯誤是 Could
not connect to server: Connection timed out.
,如果遇到此錯誤,請檢查以下事項:
-
檢查使用的主機名稱是否是資料庫執行個體端點,且使用的連接埠號碼是否正確。
-
確定該資料庫執行個體的公開存取性是設為 Yes (是) 以允許外部連線。若要修改 Public access (公開存取) 設定,請參閱 修改 Amazon RDS 資料庫執行個體。
-
確定連線到資料庫的使用者對它具有 CONNECT 存取權。您可以使用下列查詢來提供資料庫的連線存取權。
GRANT CONNECT ON DATABASE
database name
TOusername
; -
檢查指派給資料庫執行個體的安全群組是否具有以下規則:允許透過您的連線可能行經之防火牆的存取。例如,資料庫執行個體是使用預設連接埠 5432 來建立,而公司的防火牆規則會封鎖從外部公司裝置到該連接埠的連線。
若要修復此情況,請將資料庫執行個體修改為使用不同的連接埠。同時,確定套用至資料庫執行個體的安全群組,可允許對該新連接埠的連線。若要修改 Database port (資料庫連接埠) 設定,請參閱 修改 Amazon RDS 資料庫執行個體。
-
檢查您嘗試使用的連接埠是否已由 PostgreSQL 的本機執行個體或在您電腦上執行的其他服務佔用。例如,如果您在相同的連接埠上執行本機 PostgreSQL 資料庫 (預設為 5432),則可能無法成功連線至 RDS for PostgreSQL 資料庫執行個體。請確定連接埠是免費的,或盡可能嘗試使用不同的連接埠號碼連線。
-
另請參閱 安全性群組存取規則發生錯誤。
安全性群組存取規則發生錯誤
顯然地,最常見的連線問題在於對資料庫執行個體指派之安全群組的存取規則。如果建立資料庫執行個體時使用的是預設的安全群組,安全群組很可能沒有可允許您存取該執行個體的存取規則。
為了讓連線運作,您在建立時指派給資料庫執行個體的安全群組,必須允許對該資料庫執行個體的存取。例如,如果資料庫執行個體是在 VPC 中建立,則它必須具有可授權連線的 VPC 安全群組。檢查建立資料庫執行個體所用的安全群組,是否未授權從執行應用程式所在的裝置或 Amazon EC2 執行個體的連線。
您可以新增或編輯安全群組中的傳入規則。針對 Source (來源),選擇 My IP (我的 IP) 允許透過您的瀏覽器中偵測到的 IP 位址存取資料庫執行個體。如需更多詳細資訊,請參閱 透過VPC建立安全群組,提供 中資料庫執行個體的存取權。
或者,如果資料庫執行個體是在 VPC 之外建立,則它必須具有可授權那些連線的安全群組。
如需 Amazon RDS 安全群組的詳細資訊,請參閱 使用安全群組控制存取。