Postgresql

PostgreSQL 在本地執行,但我無法連接。為什麼?

  • December 19, 2017

最近將我的機器從 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這可能會幫助通過提及找到此問題的其他使用者。

引用自:https://dba.stackexchange.com/questions/21587