PostgreSQL数据库psql连接报错connections on Unix domain socket “/pgsql/data/.s.PGSQL.5432“?

 问题现象 

[postgres@lyp ~]$ pg_ctl -D /pgsql/data/ start
waiting for server to start....2021-10-15 01:42:31.606 CST [32453] LOG:  redirecting log output to logging collector process
2021-10-15 01:42:31.606 CST [32453] HINT:  Future log output will appear in directory "pg_log".
 done
server started
[postgres@lyp ~]$ 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 "/pgsql/data/.s.PGSQL.5432"?
[postgres@lyp ~]$ 

问题分析

 查看log日志

[postgres@lyp pg_log]$ tail -100f postgresql-2021-10-15_014231.csv
2021-10-15 01:42:31.606 CST,,,32453,,61686c07.7ec5,1,,2021-10-15 01:42:31 CST,,0,LOG,00000,"ending log output to stderr",,"Future log output will go to log destination ""csvlog"".",,,,,,,"","postmaster"
2021-10-15 01:42:31.606 CST,,,32453,,61686c07.7ec5,2,,2021-10-15 01:42:31 CST,,0,LOG,00000,"starting PostgreSQL 13.2 on x86_64-pc-linux-gnu, compiled by gcc (GCC) 4.8.5 20150623 (Red Hat 4.8.5-36), 64-bit",,,,,,,,,"","postmaster"
2021-10-15 01:42:31.608 CST,,,32453,,61686c07.7ec5,3,,2021-10-15 01:42:31 CST,,0,LOG,00000,"listening on IPv6 address ""::1"", port 5432",,,,,,,,,"","postmaster"
2021-10-15 01:42:31.608 CST,,,32453,,61686c07.7ec5,4,,2021-10-15 01:42:31 CST,,0,LOG,00000,"listening on IPv4 address ""127.0.0.1"", port 5432",,,,,,,,,"","postmaster"
2021-10-15 01:42:31.610 CST,,,32453,,61686c07.7ec5,5,,2021-10-15 01:42:31 CST,,0,LOG,00000,"listening on Unix socket ""/tmp/.s.PGSQL.5432""",,,,,,,,,"","postmaster"
2021-10-15 01:42:31.612 CST,,,32455,,61686c07.7ec7,1,,2021-10-15 01:42:31 CST,,0,LOG,00000,"database system was shut down at 2021-10-15 01:42:16 CST",,,,,,,,,"","startup"
2021-10-15 01:42:31.613 CST,,,32453,,61686c07.7ec5,6,,2021-10-15 01:42:31 CST,,0,LOG,00000,"database system is ready to accept connections",,,,,,,,,"","postmaster"

        日志中看到socket在:/tmp/.s.PGSQL.5432,而psql却在找/pgsql/data/.s.PGSQL.5432

查看环境变量

[postgres@lyp ~]$ cat .bash_profile 
# .bash_profile

# Get the aliases and functions
if [ -f ~/.bashrc ]; then
        . ~/.bashrc
fi

# User specific environment and startup programs

PATH=$PATH:$HOME/.local/bin:$HOME/bin

export PATH

export PGHOME=/opt/pgsql13.2
export PGDATA=/pgsql/data
export PGHOST=/pgsql/data
export PGUSER=postgres
export PGPORT=5432
export PATH=$HOME/bin:$PGHOME/bin:$PATH
export LD_LIBRARY_PATH=$PGHOME/lib:$LD_LIBRARY_PATH
[postgres@lyp ~]$ 

查看参数unix_socket_directories

[postgres@lyp ~]$ cat /pgsql/data/postgresql.conf | grep unix_socket_directories
#unix_socket_directories = '/tmp'       # comma-separated list of directories
[postgres@lyp ~]$ 

解决办法

所以解决以上错误有两个办法:

1、删除环境变量的export PGHOST=/pgsql/data

2、设置参数unix_socket_directories='/pgsql/data';        ——重启生效

  • 1
    点赞
  • 3
    收藏
    觉得还不错? 一键收藏
  • 1
    评论
这个误提示意味着无法连接到 PostgreSQL 服务器。这可能是由于以下原因导致的: 1. PostgreSQL 服务器未启动或已关闭。 2. PostgreSQL 服务器正在运行,但其套接字文件(socket file)的路径不正确。 3. PostgreSQL 服务器正在运行,但是未设置正确的连接参数。 为了解决这个问题,你可以尝试以下步骤: 1. 确认 PostgreSQL 服务器是否已经启动。你可以使用以下命令检查服务器状态: ``` $ systemctl status postgresql ``` 如果服务器未启动,你可以使用以下命令启动它: ``` $ sudo systemctl start postgresql ``` 2. 确认 PostgreSQL 服务器的套接字文件路径是否正确。默认情况下,套接字文件的路径为 `/var/run/postgresql/.s.PGSQL.5432`。你可以使用以下命令检查套接字文件的路径: ``` $ sudo lsof -i -P -n | grep LISTEN | grep postgres ``` 如果套接字文件的路径不正确,你可以尝试在连接参数中指定正确的路径。例如,如果套接字文件的路径为 `/tmp/.s.PGSQL.5432`,则可以在连接参数中指定: ``` $ psql -h /tmp dbname ``` 3. 确认连接参数是否正确。你可以使用以下命令连接到 PostgreSQL 服务器: ``` $ psql -h hostname -p port -U username -d dbname ``` 其中,`hostname` 是 PostgreSQL 服务器的主机名或 IP 地址,`port` 是 PostgreSQL 服务器的端口号(默认为 5432),`username` 是连接 PostgreSQL 服务器的用户名,`dbname` 是要连接的数据库名称。你需要根据实际情况修改这些参数。如果连接参数正确,但仍然无法连接到 PostgreSQL 服务器,则可能是由于防火墙或网络问题导致的。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论 1
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值