Mel*_*emi 33 postgresql psql mac-os-x
最近将我的机器从 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"?
Run Code Online (Sandbox Code Playgroud)
但是 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
Run Code Online (Sandbox Code Playgroud)
它响应来自本地 Rails 应用程序的查询(包括测试数据库和开发数据库)
User Load (0.2ms) SELECT "users".* FROM "users"
Rendered users/index.html.haml within layouts/application (1.3ms)
Run Code Online (Sandbox Code Playgroud)
好像没有/var/pgsql_socket/目录,更别提/var/pgsql_socket/.s.PGSQL.5432上面提到的socket文件了!?!也许安装山狮消除了这一点?
$ ls -l /var/ | grep pg
drwxr-x--- 2 _postgres _postgres 68 Jun 20 16:39 pgsql_socket_alt
Run Code Online (Sandbox Code Playgroud)
我该如何解决这个问题?
Wil*_*ill 30
我发现我有一个非常相似的问题,即 postgres 在/var/pgsql_socket_alt我的软件都不希望看到的地方打开一个套接字,但我的问题的解决方案不仅仅是我的$PATH.
我不得不创建目录/var/pgsql_socket,它执行chown自己,并设置unix_socket_directory在postgresql.conf(位于/usr/local/var/postgres)到该目录,然后使用pg_ctl二进制的/usr/local/bin成功启动正确的Postgres的服务器(这是$PATH进来-确保which pg_ctl做出决议/usr/local/bin/pg_ctl,或者只是始终明确调用它)。
这可能会帮助通过/var/pgsql_socket_alt提及找到此问题的其他用户。
一个合理且典型的解释是,psql自制软件附带的那个与/usr/local/bin/psql您的 $PATH 中的那个不同,例如/usr/bin/psql(与 OS X 捆绑在一起)。您可能想尝试使用完整路径:
$ /usr/local/bin/psql -U rails -d myapp_development
此外,ps您的问题的输出中有一些相当不寻常的东西:postgres 服务器在meltemiUnix 用户下运行,而通常情况下,专用postgresUnix 用户用于此目的。
| 归档时间: |
|
| 查看次数: |
146836 次 |
| 最近记录: |