服务器是否在本地运行并接受Odoo中Unix域套接字“/var/run/postgresql/.s.PGSQL.5432”上的连接

quhf5bfb  于 2023-02-15  发布在  PostgreSQL
关注(0)|答案(2)|浏览(179)

一段时间后,我的实时服务器的Postgres数据库停止工作。我在这个服务器上工作从过去8个月。现在突然停止工作。
当我尝试输入该命令时,psql产生错误
psql:无法连接到服务器:服务器是否在本地运行并接受Unix域套接字"/var/run/postgresql/.s.PGSQL.5432 "上的连接?
enter image description here
我用的是odoo8。

xlpyo6sf

xlpyo6sf1#

首先,您需要确保socket file位于/var/run/postgresql/.s.PGSQL.5432中。

$ cat /var/run/postgresql/.s.PGSQL.5432

如果结果显示了一些东西,那么问题是其他的。但是,如果文件不在那里,你需要检查/tmp目录(特别是OSX Homebrew用户)

$ cd /tmp
$ l

total 16
drwxrwxrwt  7 root   wheel   224B Mar 11 08:03 .
drwxr-xr-x  6 root   wheel   192B Jan 23 18:35 ..
-rw-r--r--  1 root   wheel    65B Nov  7 22:59 .BBE72B41371180178E084EEAF106AED4F350939DB95D3516864A1CC62E7AE82F
srwxrwxrwx  1 shiva  wheel     0B Mar 11 08:03 .s.PGSQL.5432
-rw-------  1 shiva  wheel    57B Mar 11 08:03 .s.PGSQL.5432.lock
drwx------  3 shiva  wheel    96B Mar 10 17:11 com.apple.launchd.C1tUB2MvF8
drwxr-xr-x  2 root   wheel    64B Mar 10 17:10 powerlog

现在,有两种方法可以解决该错误

溶液一

您可以更改应用程序配置以查看/tmp/.s.PGSQL.5432上的套接字

对于Rails用户

# config/database.yml

default: &default
  adapter: postgresql
  pool: 5
  # port: 
  timeout: 5000
  encoding: utf8
  # min_messages: warning
  socket: /tmp/.s.PGSQL.5432

溶液二

您可以创建指向预期位置的符号链接

$ sudo mkdir /var/pgsql_socket
$ sudo ln /tmp/.s.PGSQL.5432 /var/pgsql_socket/

那么错误应该消失。
希望这个有用。

    • 注意:**默认套接字目录不能是/tmp
wpx232ag

wpx232ag2#

你更新/升级你的数据库了吗?你启动了一个Docker容器,它干扰了你的数据存储/套接字文件位置了吗?
这可能并不完全符合您的情况,但可能会提供一些见解:
有时候当你尝试

sudo systemctl start postgresql.service

并且systemd状态显示它已启动,但在尝试连接时仍然收到该错误消息,请尝试以下操作:

sudo pg_ctlcluster <version> <cluster> <action>

对我来说

sudo pg_ctlcluster 13 main start

相关问题