本地套接字错误(Unix domain socket)
- 现象:psql 报错“could not connect to server: No such file or directory … /var/run/postgresql/.s.PGSQL.5432”。
- 处理:
- 确认服务器确实在运行(systemctl status postgresql)。
- 查找实际套接字:ss -lunpx | grep postgres 或 netstat -lp --protocol=unix | grep postgres,常见路径为 /tmp/.s.PGSQL.5432 或 /var/run/postgresql/.s.PGSQL.5432。
- 若客户端默认目录与服务端不一致:
- 连接时改用套接字目录:psql -h /tmp;或设置环境变量 PGHOST=/tmp。
- 或创建软链接统一路径:sudo ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432。
- 第三方/自编译包常见套接字目录差异,优先统一为 Debian/Ubuntu 打包的 /var/run/postgresql。
- 仍失败时,重启服务再试:sudo systemctl restart postgresql。