解决PostgreSQL“无法连接到服务器”错误

2020年12月31日19:41:35 发表评论 64 次浏览

介绍

了解如何解决最常见的PostgreSQL错误之一"无法连接到服务器"。此错误有几种不同的变体。

要求

  • 运行Linux(CentOS 7或Ubuntu 16.04)的Cloud Server
  • PostgreSQL已安装并正在运行。

有关设置和使用PostgreSQL的更多信息, 请参见我们的文章安装和使用PostgreSQL.

"无法连接到服务器:没有这样的文件或目录"

PostgreSQL错误"没有这样的文件或目录, 服务器是否在本地运行并且在Unix域套接字" /tmp/.s.PGSQL.xxxx"上接受连接?"通常意味着PostgreSQL没有运行。

使用systemctl status postgresql命令检查PostgreSQL的状态:

user@localhost:~# systemctl status postgresql
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
   Active: **active** (exited) since Thu 2017-03-23 21:34:03 UTC; 14s ago
 Main PID: 24289 (code=exited, status=0/SUCCESS)

CGroup:/system.slice/postgresql.service

Mar 23 21:34:03 localhost.localdomain systemd[1]: Starting PostgreSQL RDBMS...
Mar 23 21:34:03 localhost.localdomain systemd[1]: Started PostgreSQL RDBMS.
Mar 23 21:34:08 localhost.localdomain systemd[1]: Started PostgreSQL RDBMS.

如果状态显示为活性, 使用重新启动PostgreSQLsystemctl重新启动postgresql命令。如果状态显示为不活跃, 使用systemctl启动posgresql命令。

"无法连接到服务器:连接被拒绝"

首先, 使用systemctl status posgresql验证PostgreSQL是否正在运行。你可能需要使用systemctl restart postgresql来重新启动它, 以取得良好效果。

如果这不能解决问题, 则最有可能导致此错误的原因是未将PostgreSQL配置为允许TCP / IP连接。

要更正此问题, 请编辑posgresql.conf文件:

  • Ubuntu 16.04:须藤nano /etc/postgresql/9.5/main/posgresql.conf
  • CentOS 7:须藤nano /usr/pgsql-10/share/postgresql.conf

检查listen_address配置。要允许TCP / IP连接, 应将其设置为0.0.0.0(以允许来自所有IP地址的连接)或将其设置为允许连接的服务器的特定IP地址。

如果将此配置保留为空白或设置为localhost, 则PostgreSQL将不允许外部TCP / IP连接。

当连接被防火墙阻止时, 也会生成此错误。请注意, 所有云服务器均受"云面板"控制的默认防火墙策略的影响。有关更改防火墙策略的更多信息, 请查阅我们关于该主题的文档.

一盏木

发表评论

:?: :razz: :sad: :evil: :!: :smile: :oops: :grin: :eek: :shock: :???: :cool: :lol: :mad: :twisted: :roll: :wink: :idea: :arrow: :neutral: :cry: :mrgreen: