📅  最后修改于: 2023-12-03 15:26:17.233000             🧑  作者: Mango
这个错误通常出现在程序员试图连接一个 PostgreSQL 数据库时出现的。它的原因通常是因为 PostgreSQL 没有正确地配置或正在运行。
以下是可能导致出现此错误的原因和解决方法:
如果您尚未安装 PostgreSQL,请按照操作系统的指示进行安装。在大多数 Linux 分发版中,可以使用以下命令安装 PostgreSQL:
sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
在终端中,使用以下命令来检查 PostgreSQL 是否已正确配置并正在运行:
systemctl status postgresql.service
如果 PostgreSQL 正在运行,您应该会看到以下输出:
● postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Thu 2019-12-19 09:20:08 CST; 2 days ago
Main PID: 18742 (code=exited, status=0/SUCCESS)
Tasks: 0 (limit: 4915)
Memory: 0B
CGroup: /system.slice/postgresql.service
Dec 19 09:20:08 ubuntu-server systemd[1]: Starting PostgreSQL RDBMS...
Dec 19 09:20:08 ubuntu-server systemd[1]: Started PostgreSQL RDBMS.
如果 PostgreSQL 没有运行或正在运行但未正确配置,则可以按照安装指南进行修复。
如果您的操作系统使用防火墙软件,则可能会阻止与 PostgreSQL 的连接。您需要允许通过防火墙的连接。以下是针对不同防火墙的设置步骤:
ufw
防火墙如果您的操作系统使用 ufw
防火墙,请使用以下命令允许 PostgreSQL 的连接:
sudo ufw allow postgresql
firewalld
防火墙如果您的操作系统使用 firewalld
防火墙,请使用以下命令允许 PostgreSQL 的连接:
sudo firewall-cmd --add-service=postgresql --permanent
sudo firewall-cmd --reload
如果您的客户端在连接时使用了错误的主机名或端口号,则无法连接到 PostgreSQL。请确认客户端使用正确的主机名和端口号。默认情况下,PostgreSQL 使用本地主机(localhost)以侦听端口5432。
如果客户端使用了错误的身份验证凭据,则无法连接到 PostgreSQL。请确保客户端使用正确的用户名和密码来连接 PostgreSQL。
当您遇到连接 PostgreSQL 数据库时出现“无法连接到服务器:连接被拒绝。服务器是否在主机“localhost”(::1)上运行并接受端口 5432 上的 TCP/IP 连接 ”的错误消息时,请使用上述方法来解决该问题。