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

如何在Ubuntu系统安装Postgres、创建超级用户及解决createdb连接报错

错误根因说明

该报错是PostgreSQL客户端无法通过默认Unix域套接字路径找到运行中的服务端,通常由服务未实际启动、套接字路径配置不匹配、端口配置错误、运行目录权限异常四类原因导致,可按以下步骤逐一排查解决。

排查解决步骤
  • 第一步:验证PostgreSQL服务实际运行状态
    执行命令查看服务状态:
    sudo systemctl status postgresql
    
    若输出显示服务为inactive或failed状态,说明启动命令返回成功为误报,可查看/var/log/postgresql/目录下的对应日志文件定位启动失败原因,常见原因包括5432端口被其他进程占用、/etc/postgresql/<对应版本号>/main/postgresql.conf配置文件存在语法错误。
  • 第二步:核对Unix域套接字路径配置
    若确认服务正常运行,打开postgresql.conf配置文件,找到unix_socket_directories配置项,确认参数值包含/var/run/postgresql,若缺失则添加后重启服务生效:
    sudo systemctl restart postgresql
    
  • 第三步:核对端口配置
    检查postgresql.conf中的port参数,若未使用默认5432端口,执行createdb命令时需指定对应端口:
    sudo -u postgres createdb -p <自定义端口号> $USER
    
  • 第四步:修复运行目录权限
    若套接字路径和端口配置均无问题,检查/var/run/postgresql目录权限,执行以下命令修复权限后重启服务:
    sudo chown postgres:postgres /var/run/postgresql && sudo chmod 775 /var/run/postgresql
    sudo systemctl restart postgresql
    
  • 第五步:解决多版本集群冲突
    若设备上安装了多个版本的PostgreSQL,可执行命令查看所有集群状态:
    pg_lsclusters
    
    找到对应版本的集群,执行指定版本启动命令即可:
    sudo pg_ctlcluster <版本号> main start
    
  • 临时绕过方案
    无需修改配置的临时解决方法:执行createdb时指定配置中设置的套接字路径即可,比如配置中套接字路径为/tmp时,命令如下:
    sudo -u postgres createdb -h /tmp $USER
    

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.28 10:45:03