postgresql登录报错的几种情况

810 阅读2分钟

这是我参与8月更文挑战的第4天,活动详情查看:8月更文挑战

在使用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。根据实际问题进行处理。