psql: could not connect to server的一种浅显可能

时间:2025-03-19 11:47:14

作者:瀚高PG实验室 (Highgo PG Lab)- 海无涯

我们在使用postgresql数据库的时候经常遇到的问题:

[highgo@hgdb ~]$ 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/..5866"?


前期我已经为大家讲过三大类的可能性和解决方案,近期又遇到了一种新的情况,很简单,但却很容易被忽略。

环境:通常为国产环境(例如中标麒麟、普华linux等)

现象如上,但是数据库是启动状态且环境变量在安装完已经通过source生效,环境变量如下:

export LANG=C
export PGHOME=/data/highgo/4.1
export PGUSER=highgo
export PGPORT=5866
export PGDATA=$PGHOME/data
export PATH=$PGHOME/bin:$PATH:$HOME/bin
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH

状态:

[highgo@hgdb ~]$ pg_ctl status
pg_ctl: server is running (PID: 1237)
/data/highgo/4.1.1/bin/postgres "-D" "/data/highgo/4.1.1/data"


问题原因:环境变量在安装完数据库没有实际生效,重新通过如下命令使得环境变量生效:

 source /home/highgo/.bash_profile

重新连接,成功:

[highgo@hgdb ~]$ psql
psql (4.1.1)

PSQL: Release 4.1.1
Connected to:
HighGo Database V4.1 Enterprise Edition Release 4.1.1 - 64-bit Production

Type "help" for help.

highgo=#