最近兩個月碰到三次,莫名的 PG (PostgreSQL) 沒法鏈接的狀況,具體錯誤信息以下:sql
psql: could not connect to server: No such file or directory Is the server running locally and accepting connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
前兩次,本身瞎鼓搗,後面就行了,而後也沒在乎。而後今天早上 Mac 死機重啓後,這個問題又出現了,而後各類重裝 PG, 重啓系統依然無解。bash
無奈之下,開始老實地去 Google, 最後找到一篇 SO 的文章,完全解決了問題。問題的緣由是 Mac 忽然死機時原來的進程沒有正常關閉,重啓後又被啓動了。當再次啓動 PG 時,PID 文件就沒法正常工做了,由於記錄的是系統死機前的進程信息。dom
這些信息都在 PG 的日誌文件裏看到,/usr/local/var/postgres
目錄裏面,有一個 server.log
文件能夠看到全部的日誌。socket
在個人日誌裏面看到有不少行post
FATAL: lock file "postmaster.pid" already exists HINT: Is another postmaster (PID 403) running in data directory "/usr/local/var/postgres"?
這行日誌就告訴咱們 postmaster.pid
已經存在,這就是以前死機前留下的。將此文件刪除,問題就能夠解決了,可是刪除此文件前要確保 postgres
進程不在運行,因此我仍是選擇將此文件重命名。日誌
最後,PG 終於啓動了。postgresql