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

Ubuntu20重装PostgreSQL后Rails5连接套接字路径异常求助

解决PostgreSQL套接字默认路径不匹配问题

方法一:修改PostgreSQL服务端配置,新增/tmp套接字监听

PostgreSQL支持同时监听多个Unix套接字路径,既能保留原有路径,又能兼容客户端默认的/tmp搜索路径:

  • 找到对应版本的PostgreSQL配置文件,Ubuntu 20默认路径是/etc/postgresql/<你的PG版本号>/main/postgresql.conf(比如PG12就是/etc/postgresql/12/main/postgresql.conf)
  • 找到unix_socket_directories配置项,将其值修改为/var/run/postgresql,/tmp(多个路径用逗号分隔)
  • 重启PostgreSQL服务生效:sudo systemctl restart postgresql
  • 验证:执行ls /tmp/.s.PGSQL.5432,如果能看到该文件说明配置生效

方法二:调整客户端默认连接路径(针对Rails/pg gem)

如果不想改动服务端配置,可通过客户端配置让pg gem默认指向正确的套接字路径:

方式1:设置全局环境变量

在你的shell配置文件(~/.bashrc或~/.zshrc)末尾添加:

export PGHOST="/var/run/postgresql"

执行source ~/.bashrc(或对应配置文件)使配置生效,之后所有通过pg gem创建的Rails项目都会默认使用这个路径连接。

方式2:使用PG服务配置文件

创建~/.pg_service.conf文件,写入以下内容:

[default]
host = /var/run/postgresql

pg客户端会自动读取这个默认服务配置,优先使用指定的套接字路径。

两种方法选其一即可,方法一适合所有需要连接PG的客户端,方法二更针对当前用户的Ruby/Rails环境。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.07.26 10:02:10