我知道这个问题已经问过很多次了,但是这些答案对我都不起作用。
问题是,当我运行“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"?
当我运行“sudo /etc/init.d/postgresql status”时,它显示服务正在运行,
postgresql.service - PostgreSQL RDBMS
Loaded: loaded (/lib/systemd/system/postgresql.service; enabled; vendor preset: enabled)
Active: active (exited) since Tue 2018-07-10 10:51:05 +0530; 22s ago
Process: 3219 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
Main PID: 3219 (code=exited, status=0/SUCCESS)
但是当我运行“sudo lsof -i :5432”和“netstat -nltp | grep 5432”和“sudo netstat -lp --protocol=unix | grep postgres”时,我得到一个空的输出。
/etc/postgresql/9.5/main/pg_hba.conf 的内容是,
local all all peer
# IPv4 local connections:
host all all 127.0.0.1/32 md5
# IPv6 local connections:
host all all ::1/128 md5
/etc/postgresql/9.5/main/postgresql.conf 的内容
hba_file = '/etc/postgresql/9.5/main/pg_hba.conf'
port = 5432
listen_addresses = '*'
最后,我使用“sudo apt-get --purge remove postgresql*”命令卸载了 postgres,并使用“apt-get install postgresql-9.5”重新安装,但结果是一样的。
谢谢
答案1
我可以在这里找到解决我的问题的答案。无法连接到 PostgreSQL 服务器。问题是 pg 集群没有启动。
sudo pg_ctlcluster 9.5 main start
- 将告知集群是否正在运行- 如果它出现任何错误,您可以使用以下方式查看它们
journalctl -xe
- 它向我显示了错误
DETAIL: File must have permissions u=rw (0600) or less if owned by the database user, or permissions u=rw,g=r (0640) or less if owned by root
。然后,一旦我更改了私钥文件的权限,问题就解决了