psql連接數(shù)據(jù)庫(kù)報(bào)錯(cuò)-could not connect to server No such file or directory

1、問(wèn)題描述

使用psql連接數(shù)據(jù)庫(kù)報(bào)錯(cuò):

img

2、解決方案

(1)首先確認(rèn)數(shù)據(jù)庫(kù)服務(wù)是否已經(jīng)啟動(dòng)。

$ ps -ef |grep postgres highgo 

若數(shù)據(jù)庫(kù)服務(wù)正常,檢查unix_socket_directories參數(shù)。

# su - highgo   $ cat $PGDATA/postgresql.conf  |grep unix_socket_directories   $ cat  $PGDATA/postgresql.auto.conf|grep unix_socket_directories   

查看參數(shù)unix_socket_directories的值,若參數(shù)并非默認(rèn)的“/tmp”目錄,則連接數(shù)據(jù)庫(kù)時(shí)需要添加“-h 目錄”參數(shù)。

例如:

img

若依然報(bào)錯(cuò),需要查看該目錄下是否存在“.s.PGSQL.5866”文件,若不存在,查看數(shù)據(jù)庫(kù)系統(tǒng)日志,分析具體原因。

(2)若數(shù)據(jù)庫(kù)服務(wù)正常,查看配置文件,端口號(hào)是否正確。

# su - highgo 

$ cat $PGDATA/postgresql.conf |grep port

$ cat $PGDATA/postgresql.auto.conf|grep port ##查看參數(shù)port的值。

img

(3)若.s.PGSQL.nnnn的套接字文件(nnnn是數(shù)據(jù)庫(kù)服務(wù)的端口號(hào))被誤刪除,將.s.PGSQL.nnnn.lock刪除后,使用pg_ctl restart -m f 命令重啟數(shù)據(jù)庫(kù)即可。

img