PostgreSQL致命错误:无法访问文件“pg_stat_statements”:没有这个文件或目录。

6

我们的Postgres数据库(安装在Debian上的版本9.4)停止工作了(它已经连续几个月没有问题地工作)。当我尝试使用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"?

当我检查状态时,看起来一切正常:

service postgresql status
● postgresql.service - PostgreSQL RDBMS
   Loaded: loaded (/lib/systemd/system/postgresql.service; enabled)
   Active: active (exited) since Mon 2018-11-05 17:04:58 CET; 31s ago
  Process: 1367 ExecStart=/bin/true (code=exited, status=0/SUCCESS)
 Main PID: 1367 (code=exited, status=0/SUCCESS)

我尝试重新启动服务器

service postgresql restart

在日志文件中,我得到了以下内容:

FATAL:  could not access file "pg_stat_statements": No such file or directory

我试图找到一个解决方案。大多数答案都是pg_stat_statements模块存在问题。我检查了/etc/postgresql/9.4/main/postgres.conf文件,但那一行被注释了:

#shared_preload_libraries = ''          # (change requires restart)

据我所知,我们没有更改任何postgres配置文件,也没有最近进行任何升级或更新。非常感谢您的帮助。
4个回答

6

我解决了安装问题

postgresql11-contrib-11.7-1PGDG.rhel8

请注意,官方(pgdg11仓库)适用于RHEL8/CentOS/Fedora的RPM包中,在数据包名称中具有版本号(即11): postgresql11-contrib
附注:yum也会安装依赖关系:perl-Carp-1.42-396.el8.noarch perl-Exporter-5.72-396.el8.noarch perl-libs-4:5.26.3-416.el8

针对FreeBSD 12.2 - pkg install postgresql11-contrib-11.11 - Igor

4
我曾经遇到同样的问题,但后来发现问题的原因是我运行了psql命令"alter system set shared_preload_libraries='pg_stat_statements';",这覆盖了$ PGDATA路径下的 Postgresql.auto.conf 文件。结果,当我通过发出"service postgresql start"重启postgesql实例时,postmaster进程将从$ PGDATA下的conf文件 "PostgreSQL.auto.conf" 读取参数 "shared_preload_libraries"而不是/etc/postgresql/10/main/postgres. conf中的参数=“”。所以,如果您想解决此问题,请在postgresql.auto.conf中注释掉shared_preload_libraries ='pg_stat_statements'参数。谢谢。

4

最后,我安装了pg_stat_statements,然后才能启动postgresql。

添加到postgres.conf中:

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
pg_stat_statements.max = 10000
track_activity_query_size = 2048

已安装的软件包postgres-contrib-9.4:

apt-get install postgresql-contrib-9.4

重新启动了 PostgreSQL 服务:

service postgresql restart

0
今天我遇到了这个问题,发现有两个问题阻碍了我:
postgresql-contrib.x86_64                   9.2.24-1.el7_5             base     

使用

postgresql95-server.x86_64                  9.5.16-1PGDG.rhel7         @pgdg95  

正如您所看到的,版本不匹配。我找到了postgresql-contrib:9.5.16,这是正确的版本,位于https://download.postgresql.org/pub/repos/yum/9.5/redhat/rhel-7-x86_64/ 如果您找不到正确的版本,可以自己构建: https://www.postgresql.org/docs/current/contrib.html


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接