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

Ubuntu 22.04服务器无法运行psql命令求助

Ubuntu 22.04 上 psql 命令无法运行的问题排查求助

操作流程与问题现状

  • 执行sudo apt install postgresql-13(注:原命令中apy应为笔误)安装PostgreSQL 13;
  • 通过sudo -i -u postgres成功切换至postgres用户,终端提示符显示postgres@IdeaPad:~$;
  • 尝试运行psql或psql -h localhost -p 5432均报错;
  • 已确认PostgreSQL服务处于运行状态;
  • 删除postmaster.pid并重启服务后问题未解决;
  • 修改/etc/postgresql/13/main/pg_hba.conf配置文件后问题仍存在;
  • 补充:执行psql -U postgres -h localhost依旧报错。

排查与解决建议

  1. 获取具体报错信息
    把报错的文本内容直接复制出来(比如connection refused、FATAL: password authentication failed等),不同的错误提示是定位问题的关键。

  2. 检查端口监听状态
    执行ss -tulpn | grep 5432,确认PostgreSQL是否在监听5432端口。如果没有监听记录,说明服务未正常启动或配置了错误的监听端口。

  3. 查看服务启动日志
    执行systemctl status postgresql@13-main.service,查看服务启动时的日志输出,里面会包含初始化失败、配置文件语法错误等关键信息。

  4. 验证pg_hba.conf配置
    打开/etc/postgresql/13/main/pg_hba.conf,确保针对本地TCP连接的配置正确,比如:

    host    all             all             127.0.0.1/32            scram-sha-256
    host    all             all             ::1/128                 scram-sha-256
    

    修改后执行sudo systemctl reload postgresql@13-main.service使配置生效。

  5. 检查postgresql.conf的监听配置
    打开/etc/postgresql/13/main/postgresql.conf,确认listen_addresses参数设置为'localhost'(仅本地连接)或'*'(允许远程连接),默认应为'localhost'。若设置错误会导致TCP连接失败,修改后需重启服务:sudo systemctl restart postgresql@13-main.service。

  6. 尝试Unix Socket连接
    切换至postgres用户后,直接执行psql -d postgres(不指定-h参数),使用Unix Socket连接。如果此方式成功,说明TCP连接的配置存在问题;如果仍失败,可能是数据库初始化异常或权限问题。

  7. 确认PGDATA环境变量
    切换至postgres用户后执行echo $PGDATA,确认输出为/var/lib/postgresql/13/main。若路径错误,会导致psql无法找到数据库实例。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.03 23:40:30