psql: error: could not connect to server: No such file or directory

报错

[postgres@psql] (~) $ psql
psql: error: 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.15432"?

原因

pg_config_manual.h 中定义默认socket目录为:

#define DEFAULT_PGSOCKET_DIR  "/tmp"

postgres.conf中修改了socket目录或默认socket目录不在/tmp:

unix_socket_directories = '/data/pgdata/15432'
unix_socket_permissions = 0777

解决:

  • 1.修改pg_config_manual.h目录重新编译安装

  • 2.指定PGHOST变量为socket目录

[postgres@psql] (~) $ export PGHOST=/data/pgdata/15432
[postgres@psql] (~) $ psql
psql (12.6)
Type "help" for help.
postgres=# eit
postgres-#
  • 3.psql -h localhost
    如果设置了拒绝superuser远程登陆,则需要指定
$ psql -h localhost
请使用浏览器的分享功能分享到微信等