记一次关于应用程序无法连接postgresql数据的问题排查

1. 完整的错误信息

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"?

2.排查过程

2.1.首先,我们先确保postgresql在运行状态

我们可以执行命令:

sudo service postgresql status

如果提示命令不存在,则可以用另外一个命令查看运行状态

sudo systemctl status postgresql

记一次关于应用程序无法连接postgresql数据的问题排查_第1张图片

如上图所示,则代表数据库在运行中,此时如果还是提示上述错误,则我们排查服务器侦听客户端应用程序连接的Unix域套接字。

2.2.查看服务器侦听客户端应用程序连接的Unix域套接字

首先我们排查postgresql.conf(Ubuntu一般在/etc/postgresql/9.5/main/目录下)配置文件中“unix_socket_directories”所指向的目录,这个目录一般默认配置在/tmp目录下,然后通过命令查看此目录下是否存在.s.PGSQL.5432

sudo find /tmp/ -name .s.PGSQL.5432

如果返回/tmp/.s.PGSQL.5432,则代表文件存在。

如果不存在则重启postgresql

sudo service postgresql restart

如果存在,则找一下/var/run/postgresql/.s.PGSQL.5432是否存在

sudo find /var/run/postgresql/ -name .s.PGSQL.5432

如果不存在则说明/tmp/.s.PGSQL.5432文件在启动的时候没有同步到/var/run/postgresql/.s.PGSQL.5432

可以执行命令,进行同步。

 ln -s /tmp/.s.PGSQL.5432 /var/run/postgresql/.s.PGSQL.5432

此时一般就可以解决上述的问题。

如果还有其他情况,后续我会继续补充。

你可能感兴趣的:(IOT套件笔记,运维,postgresql,数据库)