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

PostgreSQL重启后仍报PG::ConnectionBad套接字不存在错误如何解决

问题根因

你使用的是WSL环境下通过apt安装的PostgreSQL 14,网上提到的/usr/local/var/psql路径是macOS通过Homebrew安装PostgreSQL的默认数据路径,和你的环境不匹配,无需参考该方案。
报错的核心原因是:PostgreSQL服务重启成功,但实际监听的Unix套接字路径和Rails默认查找的/var/run/postgresql/.s.PGSQL.5432不一致。

第一步:确认PostgreSQL实际监听路径

执行命令查看PostgreSQL启动参数:

ps aux | grep postgres

在输出的postgres进程启动参数中,找-k参数后跟随的路径,就是PostgreSQL实际存放套接字文件的目录,常见的路径还有/tmp。

可选解决方案二选一即可

方案1:修改Rails数据库配置(操作更简单)

打开项目下的config/database.yml,在你使用的环境(开发环境默认是development)配置项中添加指定套接字路径:

development:
  # 其他原有配置保留,新增下面一行
  host: 你刚才查到的PostgreSQL套接字目录路径
  # 也可以直接写host: localhost,强制走TCP连接,不需要匹配Unix套接字路径

修改后重新执行rails db:migrate即可。

方案2:修改PostgreSQL监听配置(全局生效,适合多项目共用PG的场景)

  • 打开PostgreSQL配置文件,你安装的是14版本,路径为/etc/postgresql/14/main/postgresql.conf
  • 找到unix_socket_directories参数,把Rails默认查找的路径加进去,修改为:
    unix_socket_directories = '/var/run/postgresql, 你之前查到的原有套接字路径'
    
  • 保存文件后重启PostgreSQL服务:
    sudo service postgresql restart
    

重启完成后即可正常执行Rails数据库操作。


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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.09.29 23:48:02