📌  相关文章
📜  无法连接到服务器:连接被拒绝服务器是否在主机“localhost”(::1)上运行并接受端口 5432 上的 TCP IP 连接 - Shell-Bash (1)

📅  最后修改于: 2023-12-03 15:26:17.233000             🧑  作者: Mango

无法连接到服务器:连接被拒绝服务器是否在主机“localhost”(::1)上运行并接受端口 5432 上的 TCP IP 连接 - Shell-Bash

这个错误通常出现在程序员试图连接一个 PostgreSQL 数据库时出现的。它的原因通常是因为 PostgreSQL 没有正确地配置或正在运行。

以下是可能导致出现此错误的原因和解决方法:

原因
  1. PostgreSQL 还没有被安装
  2. PostgreSQL 未被正确地配置或正在运行
  3. 防火墙阻止了连接
  4. 客户端使用了错误的主机名或端口号
  5. 客户端尝试使用错误的身份验证凭据连接到 PostgreSQL 服务器
解决方法
1. 安装 PostgreSQL

如果您尚未安装 PostgreSQL,请按照操作系统的指示进行安装。在大多数 Linux 分发版中,可以使用以下命令安装 PostgreSQL:

sudo apt-get update
sudo apt-get install postgresql postgresql-contrib
2. 确认 PostgreSQL 是否正确配置并正在运行

在终端中,使用以下命令来检查 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 没有运行或正在运行但未正确配置,则可以按照安装指南进行修复。

3. 检查防火墙设置

如果您的操作系统使用防火墙软件,则可能会阻止与 PostgreSQL 的连接。您需要允许通过防火墙的连接。以下是针对不同防火墙的设置步骤:

1. ufw 防火墙

如果您的操作系统使用 ufw 防火墙,请使用以下命令允许 PostgreSQL 的连接:

sudo ufw allow postgresql

2. firewalld 防火墙

如果您的操作系统使用 firewalld 防火墙,请使用以下命令允许 PostgreSQL 的连接:

sudo firewall-cmd --add-service=postgresql --permanent
sudo firewall-cmd --reload
4. 确认客户端连接设置是否正确

如果您的客户端在连接时使用了错误的主机名或端口号,则无法连接到 PostgreSQL。请确认客户端使用正确的主机名和端口号。默认情况下,PostgreSQL 使用本地主机(localhost)以侦听端口5432。

5. 确认客户端的身份验证凭据是否正确

如果客户端使用了错误的身份验证凭据,则无法连接到 PostgreSQL。请确保客户端使用正确的用户名和密码来连接 PostgreSQL。

结论

当您遇到连接 PostgreSQL 数据库时出现“无法连接到服务器:连接被拒绝。服务器是否在主机“localhost”(::1)上运行并接受端口 5432 上的 TCP/IP 连接 ”的错误消息时,请使用上述方法来解决该问题。