加入收藏 | 设为首页 | 会员中心 | 我要投稿 李大同 (https://www.lidatong.com.cn/)- 科技、建站、经验、云计算、5G、大数据,站长网!
当前位置: 首页 > 百科 > 正文

PostgreSQL在本地运行,但我无法连接.为什么?

发布时间:2020-12-13 16:20:57 所属栏目:百科 来源:网络整理
导读:最近我的机器从Mac OS X Lion(10.7.4)更新到Mountain Lion(10.8),我觉得它塞了我的PostgreSQL安装.它最初是通过Homebrew安装的.我不是DBA,但希望有人能告诉我如何解决这个问题. 我无法连接(但能够在之前的Mountain Lion之前): $psql -U rails -d myapp_deve
最近我的机器从Mac OS X Lion(10.7.4)更新到Mountain Lion(10.8),我觉得它塞了我的PostgreSQL安装.它最初是通过Homebrew安装的.我不是DBA,但希望有人能告诉我如何解决这个问题.

我无法连接(但能够在之前的Mountain Lion之前):

$psql -U rails -d myapp_development
psql: could not connect to server: No such file or directory
    Is the server running locally and accepting
    connections on Unix domain socket "/var/pgsql_socket/.s.PGSQL.5432"?

但Postgres仍然在运行:

$ps aux | grep postgres
meltemi          2010   0.0  0.0  2444124   5292   ??  Ss   Wed01PM   0:00.02 postgres: rails myapp_development [local] idle    
meltemi           562   0.0  0.0  2439312    592   ??  Ss   Wed12PM   0:02.28 postgres: stats collector process       
meltemi           561   0.0  0.0  2443228   1832   ??  Ss   Wed12PM   0:01.57 postgres: autovacuum launcher process       
meltemi           560   0.0  0.0  2443096    596   ??  Ss   Wed12PM   0:02.89 postgres: wal writer process       
meltemi           559   0.0  0.0  2443096   1072   ??  Ss   Wed12PM   0:04.01 postgres: writer process       
meltemi           466   0.0  0.0  2443096   3728   ??  S    Wed12PM   0:00.85 /usr/local/bin/postgres -D /usr/local/varpostgres -r /usr/local/var/postgres/server.log

它正在响应来自本地Rails应用程序的查询(包括测试数据库和开发数据库)

User Load (0.2ms)  SELECT "users".* FROM "users" 
  Rendered users/index.html.haml within layouts/application (1.3ms)

似乎没有/ var / pgsql_socket /目录,更不用说上面提到的/var/pgsql_socket/.s.PGSQL.5432套接字文件了!?!也许山狮的装置擦掉了?

$ls -l /var/ | grep pg
drwxr-x---   2 _postgres  _postgres    68 Jun 20 16:39 pgsql_socket_alt

我该如何解决这个问题?

我发现我有一个非常类似的问题,即postgres在/ var / pgsql_socket_alt中打开一个套接字,我的软件都没有看到,但我的问题的解决方案不仅仅是我的$PATH问题.

我必须创建目录/ var / pgsql_socket,自己选择它,并将postgresql.conf中的unix_socket_directory(位于/usr/local / var / postgres中)设置到该目录,然后在/usr/local /中使用pg_ctl二进制文件bin成功启动正确的postgres服务器(这是$PATH进来的地方 – 确保哪个pg_ctl解析为/usr/local / bin / pg_ctl,或者只是总是明确地调用它).

这可能有助于通过/ var / pgsql_socket_alt提到这个问题的其他用户.

(编辑:李大同)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    推荐文章
      热点阅读