PostgreSQL FATAL:无法访问文件“ pg_stat_statements”:没有此类文件或目录

时间:2018-11-05 16:35:10

标签: postgresql postgresql-9.4

我们的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 个答案:

答案 0 :(得分:1)

最后,我安装了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

已安装软件包postgresql-contrib-9.4:

apt-get install postgresql-contrib-9.4

重新启动postgresql服务:

service postgresql restart

答案 1 :(得分:1)

我曾经遇到过同样的问题。但是后来发现原因是我运行了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'。谢谢。

答案 2 :(得分:1)

我解决了安装问题

postgresql11-contrib-11.7-1PGDG.rhel8

请注意,用于RHEL8 / CentOS / Fedora的官方(pgdg11存储库)RPM在数据包名称中具有版本(即11):

postgresql 11 -contrib

百胜餐饮还安装了依赖项:perl-Carp-1.42-396.el8.noarch perl-Exporter-5.72-396.el8.noarch perl-libs-4:5.26.3-416.el8

答案 3 :(得分:0)

我今天遇到了这个问题,发现有两个问题使我受阻:

postgresql-contrib.x86_64                   9.2.24-1.el7_5             base     

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

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