解决Unix domain socket “/var/run/postgresql/.s.PGSQL.5432问题
事情是这样的,服务器突然宕机了,然后强制重启后,发现psql一直提示这个报错,在网上看了好多资料都尝试过都解决不了。。。一直提示connections on Unix domain socket "/var/run/postgresql/.s.PGSQL.5432"?
root@iZuf65h4aroldogdrm332jZ:~# 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 "/var/run/postgresql/.s.PGSQL.5432"?
解决办法按照以下命令执行。(如果还不行,那就尝试把/var/run/下的postgresql文件夹直接删除掉后,再去重复一次下面操作。)
给文件权限
root@iZuf65h4aroldogdrm332jZ:/run# sudo chmod 750 /var/lib/postgresql/12/main
查看该文件的权限(drwxr-x---)
root@iZuf65h4aroldogdrm332jZ:/run# ls -ld /var/lib/postgresql/12/main
drwxr-x--- 19 postgres postgres 4096 Jul 30 14:18 /var/lib/postgresql/12/main
然后依次执行一下重启
root@iZuf65h4aroldogdrm332jZ:/run# sudo service postgresql stop
root@iZuf65h4aroldogdrm332jZ:/run# sudo service postgresql start
如果执行psql出现这个role “root” does not exist则用以下命令执行
psql -h 127.0.0.1 -U postgres
root@iZuf65h4aroldogdrm332jZ:/run# psql
psql: error: FATAL: role "root" does not exist
会发现。。居然进去了。。。。
root@iZuf65h4aroldogdrm332jZ:/run# psql -h 127.0.0.1 -U postgres
psql (12.16 (Ubuntu 12.16-0ubuntu0.20.04.1))
SSL connection (protocol: TLSv1.3, cipher: TLS_AES_256_GCM_SHA384, bits: 256, compression: off)
Type "help" for help.
postgres=>
本地连接远程Linux中的Postgresql
如果你已经配置了pg_hba.conf后远程连接不上Postgresql,那就去把防火墙规则先删除再配置上即可,我这里已阿里云为例