postgresql - www - Socket File“/var/pgsql_socket/.s.PGSQL.5432”在Mountain Lion中丟失(OS X Server)




www postgresql (12)

我剛剛使用OS X Server將我的MacMini服務器從Lion Server升級到Mountain Lion。 我在去年使用PostgreSQL時遇到了同樣的問題,當時我首先安裝了Lion Server。

當我嘗試執行任何類型的PostgreSQL終端命令時,我會收到以下幾年來出現的臭名昭著的錯誤消息:

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的密碼。 我嘗試了幾個命令,但得到了同樣的錯誤。 我剛剛重啟我的服務器,但沒有運氣。 我以root用戶身份登錄到/ var / pgsql_socket,並且該文件夾為空。 文件夾/ var / pgsql_socket_alt也是空的。

我在網上查了一下。 然而,幾乎所有我讀過的解決方案,包括堆棧溢出,都建議刪除並重新安裝PostgreSQL。 我不知道,但這似乎不是一個合理的選擇,因為服務器應用程序上的幾個選項使用PostgreSQL。 我聯繫了蘋果企業支持部門(沒有達成協議),我被告知我的問題必須由開發人員解決,這些開發人員將投入695美元。

我現在有一個網站,因為我無法重建它。 在這一點上,我不知道該去哪裡尋求幫助。 我會繼續在網上查看是否可以找到某些東西。 不過,我希望有人能夠快速給我一個答案,以便我可以重建我的數據庫。

更新:2012年12月13日15:33 GMT-6

這裡是我的輸出為ps auwwx | grep postg:

_postgres      28123   0.0  0.1  2479696   7724   ??  Ss    3:01PM   0:00.04 /Applications/Server.app/Contents/ServerRoot/usr/bin/postgres_real -D /Library/Server/PostgreSQL For Server Services/Data -c listen_addresses= -c log_connections=on -c log_directory=/Library/Logs/PostgreSQL -c log_filename=PostgreSQL_Server_Services.log -c log_line_prefix=%t  -c log_lock_waits=on -c log_statement=ddl -c logging_collector=on -c unix_socket_directory=/Library/Server/PostgreSQL For Server Services/Socket -c unix_socket_group=_postgres -c unix_socket_permissions=0770
server1        28216   0.0  0.0  2432768    620 s000  R+    3:02PM   0:00.00 grep postg
_postgres      28138   0.0  0.0  2439388    752   ??  Ss    3:01PM   0:00.01 postgres: stats collector process                           
_postgres      28137   0.0  0.0  2479828   1968   ??  Ss    3:01PM   0:00.00 postgres: autovacuum launcher process                           
_postgres      28136   0.0  0.0  2479696    544   ??  Ss    3:01PM   0:00.00 postgres: wal writer process                           
_postgres      28135   0.0  0.0  2479696    732   ??  Ss    3:01PM   0:00.01 postgres: writer process                           
_postgres      28134   0.0  0.0  2479696    592   ??  Ss    3:01PM   0:00.00 postgres: checkpointer process                           
_postgres      28131   0.0  0.0  2439388    368   ??  Ss    3:01PM   0:00.00 postgres: logger process 

更新:2012年12月13日18:10 GMT-6

在激烈的網絡搜索後,發現了這個視頻。 我能夠使PostgreSQL正常工作並刪除錯誤。 我可以使用pgadmin和phppgadmin進行連接。 我正要回到獅子服務器,因為它非常沮喪。 現在我不需要。

http://www.youtube.com/watch?v=y1c7WFMMkZ4


首先刪除已安裝的postgres: -

sudo apt-get purge postgr *

sudo apt-get autoremove

然後安裝'synaptic':

sudo apt-get install synaptic

sudo apt-get update

然後安裝postgres

sudo apt-get install postgresql postgresql-contrib



嘗試粘貼到控制台中:

$ mkdir /var/pgsql_socket/ 

$ ln -s /private/tmp/.s.PGSQL.5432 /var/pgsql_socket/

在你最喜歡的編輯器中打開'postgresql.conf'。 查找變量'unix_socket_directories',它很可能看起來像這樣:

unix_socket_directories = '/private/tmp/'

將此行更改為:

unix_socket_directories = '/var/pgsql_socket/'

請注意,如果您希望多個目錄逗號中的套接字文件將它們分開,


我剛剛創建了一個新的群集,並為我工作,我正在使用(PostgreSQL)9.3.20:

sudo pg_createcluster 9.3 main --start

我在Django遇到了這個問題。

通過明確地將您的主機名設置為“localhost”來修復它。


我能夠通過簡單地填寫PostgreSQL主機地址127.0.0.1而不是將其留空來解決。 (Django示例)

DATABASES = {
    'default': {
        'ENGINE': 'django.db.backends.postgresql_psycopg2',
        'NAME': 'database_name',
        'USER': 'database_user',
        'PASSWORD': 'pass',
        'HOST': '127.0.0.1',
        'PORT': '',
        }
}

我花了一段時間,但在完成所提供的建議和進行其他網絡搜索之後,我終於能夠完成這項工作。 我使用Mactasia創建的以下YouTube視頻中的信息:

http://www.youtube.com/watch?v=y1c7WFMMkZ4

當我這樣做時,我看到帶.lock的文件作為擴展名。 但是,當我嘗試啟動Rails服務器時,仍使用PostgreSQL重新開始使用Rails應用程序時仍然出現錯誤。 這次我得到了一個拒絕許可的錯誤。 這是當我想起我不僅需要更改plist中的listen_addresses,而且還必須將unit_socket_permissions更改為0777.我還以root用戶身份登錄,以更改var / pgsql_socket文件夾的權限,以便我可以在用戶級別。 Postgres現在工作正常。 我正在從我的SQL備份中重新加載我的數據。

我不明白的是,當我開啟了wiki時,PostgreSQL本該在工作,當我做了一個sudo serveradmin fullstatus postgres,但我仍然遇到了錯誤。 好吧。


文件權限在Mac OS擁有的Postgres數據庫上受到限制。 這些權限在重新引導或重新啟動Postgres後重置:例如serveradmin start postgres。

因此,暫時重置權限或所有權:

sudo chmod o+rwx /var/pgsql_socket/.s.PGSQL.5432
sudo chown "webUser"  /var/pgsql_socket/.s.PGSQL.5432

權限重置不安全,因此請安裝您擁有的解決方案的數據庫版本。


檢查數據庫的狀態:

service postgresql status

如果數據庫未運行,請啟動數據庫:

sudo service postgresql start

apt-get install postgres-xc-client
apt-get install postgres-xc

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"?

我一直在獲取上述錯誤,上述解決方案都不適用於我。 最後,下面的解決方案解決了我在Mac OS X上的問題

使用brew安裝postgres

brew install postgres

安裝brew服務

brew tap homebrew/services

啟動postgres作為後台服務

brew services start postgresql

手動停止postgres

brew services stop postgresql

我們也可以使用brew服務重新啟動Postgres

brew services restart postgresql




osx-server