返回

PostgreSQL psql 连接失败?对等身份验证失败?快速解决指南

python

PostgreSQL psql: 无法连接到用户,错误:对等身份验证失败

对于 PostgreSQL 用户来说,无法连接到数据库是一个常见的挫折。如果您遇到错误消息 "FATAL: 对等身份验证失败" ,那么您很可能遇到了一个常见的连接问题。在本指南中,我们将探讨导致此错误的常见原因并提供分步解决方法。

原因

"对等身份验证"是一种 PostgreSQL 认证方法,它依赖于客户端和服务器之间的共享密钥。当这种方法失败时,通常是因为客户端和服务器无法就密钥达成一致。这可能是由于密码错误、权限问题或网络连接问题造成的。

解决方法

1. 验证用户存在性

首先,检查用户是否存在并具有连接权限。运行以下命令:

sudo passwd userrole

如果用户不存在,请创建用户并授予适当的权限。

2. 检查密码

确保为用户 "userrole" 设置的密码正确无误。尝试重置密码或使用其他密码连接。

3. 检查网络连接

验证 PostgreSQL 服务正在运行并可以访问。使用以下命令检查:

netstat -antp | grep postgres

确保 PostgreSQL 正在侦听端口 5432。

4. 检查权限

验证用户 "userrole" 具有连接到数据库所需的权限。检查 /etc/postgresql/pg_hba.conf 配置文件中的权限设置。

5. 禁用对等身份验证

/etc/postgresql/postgresql.conf 配置文件中,将 peer 设置更改为 0

6. 修改侦听地址

/etc/postgresql/postgresql.conf 配置文件中,将 listen_addresses 设置更改为 *

7. 防火墙设置

检查防火墙是否阻止了对 PostgreSQL 端口 5432 的访问。如果需要,禁用或配置防火墙允许连接。

8. SELinux 设置

如果启用了 SELinux,请验证 PostgreSQL 服务具有必要的 SELinux 权限。使用 sestatus 命令检查 SELinux 状态,并根据需要进行调整。

其他提示

  • 使用 psql -v ON 命令查看详细的连接错误消息。
  • 尝试使用其他客户端工具(如 pgAdmin 或 DBeaver)连接到 PostgreSQL。
  • 检查 PostgreSQL 日志文件以获取有关连接问题的更多信息。

常见问题解答

1. 为什么会出现此错误?

此错误可能是由于密码错误、权限问题或网络连接问题造成的。

2. 如何解决此错误?

按照本文中概述的解决步骤进行操作。验证用户存在性、检查密码、检查网络连接、权限、禁用对等身份验证并修改侦听地址。

3. 对等身份验证是什么?

对等身份验证是一种 PostgreSQL 认证方法,它依赖于客户端和服务器之间的共享密钥。

4. 如何避免此错误?

确保用户存在并具有适当的权限。定期更新密码并检查网络连接。

5. 此错误与其他连接问题有何不同?

此错误与无法连接到 PostgreSQL 数据库的其他连接问题不同,因为它专门涉及对等身份验证失败。