Postgresql
PostgreSQL 在本地執行,但我無法連接。為什麼?
最近將我的機器從 Mac OS X Lion (10.7.4) 更新到 Mountain Lion (10.8),我認為它破壞了我的 PostgreSQL 安裝。它最初是通過 Homebrew 安裝的。我不是 DBA,但希望有人能告訴我如何解決這個問題。
我無法連接(但在山獅之前能夠連接):
$ 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
上面提到的socket文件了!?!也許安裝山獅消除了這一點?$ 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
,將它自己保存,然後設置(位於unix_socket_directory
)該目錄,然後使用二進製文件成功啟動正確的 postgres 伺服器(這是進來的地方——確保解析為,或者總是明確地呼叫它)。postgresql.conf``/usr/local/var/postgres``pg_ctl``/usr/local/bin``$PATH``which pg_ctl``/usr/local/bin/pg_ctl
/var/pgsql_socket_alt
這可能會幫助通過提及找到此問題的其他使用者。