相关疑难解决方法(0)

无法连接到本地PostgreSQL

我设法让我的本地开发环境变得笨拙.

我所有的本地Rails应用程序现在都给出错误:

PGError
could not connect to server: Permission denied
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)

我不知道是什么造成的.

在搜索解决方案时,我更新了所有捆绑的宝石,更新的系统宝石,更新的MacPorts.没有快乐.

其他人在从OSX Leopard升级到Lion时报告了这个问题,因为混淆应该使用哪个版本的Postgres(即OSX版本或MacPorts版本).我已经在Lion运行了几个月,所以现在这应该发生似乎很奇怪.

如果不先了解问题是什么,我就不愿意过多地捣乱.如何有条不紊地调试?

如何确定我的系统中有多少版本的PostgreSQL,正在访问哪一个版本以及它所在的位置?如果使用错误的PostgreSQL,我该如何解决这个问题?

抱歉没有问题.我还在学习它是如何工作的!谢谢你的任何指示.

编辑

一些更新基于以下建议和评论.

我试图运行pg_lsclusters哪个返回command not found错误.

然后我尝试本地化我的pg_hba.conf文件并找到这三个示例文件:

/opt/local/share/postgresql84/pg_hba.conf.sample
/opt/local/var/macports/software/postgresql84/8.4.7_0/opt/local/share/postgresql84/pg_hba.conf.sample
/usr/share/postgresql/pg_hba.conf.sample
Run Code Online (Sandbox Code Playgroud)

所以我假设安装了3个版本的PSQL?Macports,OSX默认和???.

然后我搜索了ps -ef | grep postgres返回的launchctl启动脚本

0    56     1   0 11:41AM ??         0:00.02 /opt/local/bin/daemondo --label=postgresql84-server --start-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper start ; --stop-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper stop ; --restart-cmd /opt/local/etc/LaunchDaemons/org.macports.postgresql84-server/postgresql84-server.wrapper restart ; --pid=none
  500   372     1   0 11:42AM ??         0:00.17 …
Run Code Online (Sandbox Code Playgroud)

postgresql macos ruby-on-rails

124
推荐指数
8
解决办法
12万
查看次数

OS X Yosemite升级后,自制软件将无法启动Postgresql服务器

重新创建错误的步骤:

  • brew uninstall postgresql
  • brew prune
  • brew install postgresql
  • 运行postgresql启动命令
  • psql

产量:

psql: could not connect to server: No such file or directory
Is the server running locally and accepting
connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
Run Code Online (Sandbox Code Playgroud)

我尝试过的建议修复不起作用:

创建缺少的符号链接:

  • sudo mkdir /var/pgsql_socket/
  • sudo ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

删除postmaster.pid文件(与上面相同的链接):

  • rm /usr/local/var/postgres/postmaster.pid

从升级创建潜在的“清理”目录:

  • mkdir -p /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat_tmp}/ touch /usr/local/var/postgres/{pg_tblspc,pg_twophase,pg_stat_tmp}/.keep

相关的GitHub问题

编辑1:

本文正确地推测有多个版本的postgres在使用中,并且pg_ctl必须指定(下面)。奇怪的是,有两个目录/usr/local/varpostgrepostgres。如果有人知道要更新哪些设置以pg_ctl直接使用正确的命令,我将不胜感激!

/usr/local/Cellar/postgresql/9.3.5_1/bin/pg_ctl -D /usr/local/var/postgre start

postgresql homebrew osx-yosemite

2
推荐指数
1
解决办法
2402
查看次数