Homebrew 安裝 PostgreSQL 無法連接,數據庫文件與伺服器不兼容
這是我今天嘗試使用以下命令登錄我的本地主機 PosgreSQL 數據庫時收到的錯誤消息
psql
:psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/tmp/.s.PGSQL.5432"?
我使用 Homebrew 安裝了 PostgreSQL,今天早上我使用該實用程序解除安裝並重新安裝,沒有觀察到任何變化。客戶端工作正常,
psql
我仍然可以使用它通過網路連接到數據庫。我每個月或兩個月只連接到我的本地數據庫一次,之前它工作得很好,所以我假設這是由於一些自動更新,但我不知道是哪個。Mac OS 最近將自身升級到 High Sierra (10.13)。2014 年這裡出現了相同的錯誤消息(連結),但這是一個人無法啟動伺服器的情況。就我而言,我相信它正在執行 - 我已經使用過
brew services start postgresql
,是的,我今天已經重新啟動了幾次。但是,錯誤中提到的文件 ,/tmp/.s.PGSQL.5432
在我的系統上不存在。我認為這是一些配置錯誤的情況。任何人都知道如何解決?更新:我嘗試手動啟動伺服器(按照 Evan 的建議),我認為我取得了突破。這是我嘗試手動啟動它時遇到的錯誤:
FATAL: database files are incompatible with server DETAIL: The data directory was initialized by PostgreSQL version 9.6, which is not compatible with this version 10.1.
initdb
更新2:最終我通過替換我的數據目錄並使用標記為“正確”的答案中的空數據庫重新初始化它來解決這個問題。公平地說,所有三個答案都有幫助。我無法將數據庫從舊版本更新到新版本,因為我不再擁有舊版本 Postgres 的二進製文件。
如果您沒有任何數據,那麼 Brew 似乎有問題。您是否執行了升級, StackOverflow 上
brew
有兩個答案可以解決這個問題,我已將它們合併在一起以嘗試兩全其美。
- 備份
launchctl unload -w ~/Library/LaunchAgents/homebrew.mxcl.postgresql.plist sudo mv /usr/local/var/postgres /usr/local/var/.postgres_bak;
- 確保您擁有最新版本
brew update brew upgrade postgresql
要麼,要麼重新初始化,要麼嘗試升級你的數據目錄
核對它(從頭開始,留下舊的備份)
initdb /usr/local/var/postgres -E utf8
嘗試升級它
_upgrade -b /usr/local/Cellar/postgresql/$myOldVersion/bin/ -B /usr/local/Cellar/postgresql/$myNewVersion/bin -d /usr/local/var/.postgres_bak -D /usr/local/var/postgres
4. 重啟伺服器。
brew services start postgresql
5. 刪除備份,如果伺服器重新啟動並且一切正常,請刪除備份
sudo rm -rf /usr/local/var/.postgres_bak