You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

PostgreSQL13服务显示active但psql无法连接的故障排查

PostgreSQL服务显示active但无法连接修复方案

核心问题点

  • postgresql.conf中listen_addresses = '*'配置被注释,默认监听规则不符合预期
  • pg_hba.conf中IPv6连接规则配置非法:::0/00不是合法的IPv6 CIDR格式,会导致数据库加载鉴权规则失败,进程虽然存活但无法正常响应连接请求
  • 可能存在Unix socket目录权限异常、配置修改后未彻底重启服务的问题

修复操作步骤

  1. 修正postgresql.conf配置,放开监听地址注释,确保配置如下:
listen_addresses = '*'         # what IP address(es) to listen on;
                                        # comma-separated list of addresses;
                                        # defaults to 'localhost'; use '*' for all
                                        # (change requires restart)
port = 5432                     # (change requires restart)
max_connections = 100                   # (change requires restart)
#superuser_reserved_connections = 3     # (change requires restart)
unix_socket_directories = '/var/run/postgresql' # comma-separated list of directories
  1. 修正pg_hba.conf中错误的IPv6规则,将非法的::0/00替换为合法的::/0,对应配置段修改为:
# IPv6 local connections:
host    all             all             ::/0                 trust

注意:trust鉴权模式允许任意IP/用户无需密码直接连接数据库,仅适合本地测试环境使用,生产环境请替换为scram-sha-256等安全鉴权方式

  1. 修复Unix socket目录权限,避免因目录不存在、权限不足导致本地socket连接失败:
sudo mkdir -p /var/run/postgresql
sudo chown -R postgres:postgres /var/run/postgresql
sudo chmod 755 /var/run/postgresql
  1. 彻底重启PostgreSQL服务加载全部配置,不要使用reload操作:
sudo systemctl stop postgresql
sudo systemctl start postgresql
# 确认服务启动状态
sudo systemctl status postgresql
  1. 验证本地连接:
sudo su - postgres
psql

如果执行以上操作后仍无法连接,直接查看PostgreSQL 13的运行日志定位具体错误,默认日志路径为/var/log/postgresql/postgresql-13-main.log,日志末尾的报错信息会明确标注问题原因,常见的剩余问题包括数据目录权限错误、5432端口被其他进程占用、磁盘空间满等。

内容的提问来源于stack exchange,提问作者krishna lodha

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.08.29 14:12:16