作者:瀚高PG实验室 (Highgo PG Lab)- 徐云鹤
在使用PostgreSQL的过程中,通过psql或者应用程序连接数据库,经常会遇到如下报错,再此我们来了解一下这些报错信息及处理方法。
第一种:
FATAL: no pg_hba.conf entry for host "10.10.10.10", user "highgo", database "highgo"
这条消息最可能出现的情况是你成功地连接了服务器,但它拒绝了接下来的联系。就像消息本身所建议的,服务器拒绝了连接请求,因为它没有在其pg_hba.conf配置文件里找到匹配项。
这时需要在pg_hba.conf配置文件对此ip或ip段进行设置。
第二种:
FATAL: password authentication failed for user "highgo"
这样的消息表示你联系了服务器,并且它也愿意和你交谈,但是你必须通过pg_hba.conf文件中指定的认证方法。
这时需要检查你提供的口令,或者如果错误消息提到了 Kerberos 或 ident 认证类型,检查那些软件。
第三种:
FATAL: user "highgo" does not exist
指示的数据库用户没有被找到。
检查用户名的正确性。
第四种:
FATAL: database "highgo" does not exist
你试图连接的数据库不存在。请注意如果在使用一些工具例如psql,你没有声明数据库名,默认会用数据库用户名作为数据库名,这可能正确也可能不正确。
检查数据库名称的正确性。
第五种:
error: FATAL: the database system is starting up
这说明当前数据库正在处于恢复状态,此时无法接受数据库外部链接。此时需要排查数据库日志,看下是否有过数据库异常崩溃的情况;排查是否是后备数据库,后备数据库状态是否正常,正常的话hot_standby参数是否设置为on。根据实际问题进行处理。