问题描述
RDS PostgreSQL 无法连接,该如何分析并排查此类问题
问题分析
通常来说,无法连接到实例可能有如下原因:
- 实例处于不健康/不可用状态
- 网络不通
- 账号密码错误/数据库不存在
- 实例当前负载很高导致连不上,短时间失去响应
本文主要分析网络不通,账号密码错误 和 数据库不存在这两种情况,会使用 psql 客户端来查看具体的报错信息,方便我们在出现问题的时候快速定位。
分析解决
场景一:没有访问白名单
访问时报错如下:
[postgres@ip-10-0-0-22 ~]$ psql rudonx -h 111.62.xx.xx -p 5432 -U rudonx
psql: server closed the connection unexpectedly
This probably means the server terminated abnormally
before or while processing the request.
遇到此报错,我们应该去检查下白名单中是否有您的客户端IP地址,如果没有,请先进行添加。点击您的实例,选择数据安全,然后点击'新增IP白名单分组',将您的客户端地址填写进去即可。
场景二: 用户名/密码错误
如果是用户名或者密码错误,您会收到如下错误:
[postgres@ip-10-0-0-22 ~]$ psql rudonx -h 111.62.116.62 -p 5432 -U rudonx ---用户密码错误
Password for user rudonx:
psql: ERROR: authentication failed
DETAIL: password authentication failed for user "rudonx"
点击您的实例,选择账号管理,重置密码即可。
场景三:数据库不存在
如果指定的数据库不存在,您会收到如下错误:
[postgres@ip-10-0-0-22 data]$ psql test -h 111.62.xx.xx -p 5432 -U rudonx
Password for user rudonx:
psql: FATAL: database "test" does not exist
这时候您需要查看下您连接的数据库是否存在,如本例中的 test 数据库。如果不存在,您可以按照下图的方式进行添加,选择数据库管理,再点击 "创建数据库" 即可。 如果您有其他问题,欢迎您联系火山引擎技术支持服务