最近我的机器从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,或者只是总是明确地调用它).