今天有个朋友问我关于psql无法登陆的问题,错误日志如下:
[postgres@cloudman pgdata]$ /usr/local/bin/pg_10/bin/psql
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"?
也给我看了数据库的运行情况和pg_hba的配置,如下图
微信图片_20191120200759.png
微信图片_20191120200810.png
微信图片_20191120200716.png
实际这个问题,在错误日志和第三张图上配置文件里面已经体现出来了。
是由于配置参数 unix_socket_directories 的设置导致的。
在第三张图上,我们可以看到系统默认的参数值是 '/tmp',但是依赖于PostgreSQL的Project Open将无法工作,因为它在/var/run/postgresql中查找unix_socket。
解决途径有:
- 在环境变量中添加 PGHOST 变量,指定到 /tmp 目录中
export PGHOST=/tmp
然后source 重新加载生效。
-
修改postgresql.conf,更改unix_socket_directories参数的值为/var/run/postgresql
然后reload配置生效。 -
创建一个软链接
ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432
网友评论