我在 PostgreSQL 中遇到了一个持续存在的问题,我反复遇到错误消息:
could not connect to server: Connection refused Is the server running on host "localhost" (127.0.0.1) and accepting TCP/IP connections on port 5432?
此问题间歇性出现,似乎在正常运行一段时间后出现。我能够解决此问题的唯一方法是手动重新启动 PostgreSQL 服务。然而,一段时间后问题又出现了。
我尝试通过使用 ps aux | 检查 PostgreSQL 是否正在运行来进行故障排除。 grep postgres 命令,验证 PostgreSQL 确实正在运行。另外,我查看了 PostgreSQL 日志,但找不到任何可能导致此问题的特定错误消息或模式。
我希望有人能够阐明可能导致此问题的原因,并提供有关如何更有效地诊断和解决该问题的步骤或见解。如果我应该查看或测试特定的日志或配置,我将不胜感激任何指导。
还有其他人遇到过这个问题并成功解决吗?非常感谢您的帮助。
提前谢谢您!
我在网上搜索了解决方案并找到了一些建议,例如调整 PostgreSQL 配置文件的设置、验证端口可用性以及确保服务器正确配置为接受 TCP/IP 连接。然而,即使在尝试了这些解决方案之后,问题仍然存在。
这是 postgresql 日志:
LOG: worker process: logical replication launcher (PID 13195) exited with exit code 1
user@db FATAL:由于管理员命令而终止连接 日志:关闭 LOG:数据库系统已关闭 日志:监听 IPv4 地址“127.0.0.1”,端口 5432 日志:无法绑定 IPv4 地址“10.1.4.26”:无法分配请求的地址 提示:另一个 postmaster 是否已在端口 5432 上运行?如果没有,请等待几秒钟然后重试。 警告:无法为“10.1.4.26”创建侦听套接字 日志:监听 IPv4 地址“10.1.4.26”,端口 5432 日志:监听 Unix 套接字“/var/run/postgresql/.s.PGSQL.5432” 日志:数据库系统已于 2023-08-10 22:35:12 UTC 关闭 日志:数据库系统已准备好接受连接 [未知]@[未知]日志:启动数据包不完整 user@db 日志:无法从客户端接收数据:连接已被对等方重置
这通常发生在您的系统突然关闭时,尝试运行
postgres -D /usr/local/var/postgres
,您可能会收到消息
FATAL: lock file "postmaster.pid" already exists
HINT: Is another postmaster (PID 4573) running in data directory "/usr/local/var/postgres"?
然后运行
kill PID
,在本例中为 kill 4573
为了防止将来再次发生此错误,我建议您在关闭系统之前始终停止服务器。