PostgreSQL FATAL: не удалось получить доступ к файлу "pg_stat_statements": такого файла или каталога нет - PullRequest
0 голосов
/ 05 ноября 2018

Наша база данных postgres (версия 9.4, установленная на Debian) перестала работать (она работает без проблем несколько месяцев). Когда я пытаюсь подключиться с помощью 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 и не обновляли и не обновляли в последнее время. Заранее благодарю за помощь.

Ответы [ 3 ]

0 голосов
/ 28 февраля 2019

Я когда-либо сталкивался с такой же проблемой. Но позже выяснилось, что причина в том, что я выполняю команду psql «alter system set shared_preload_libraries = 'pg_stat_statements';», которая перезаписывает PostgreSQL.auto.conf по пути $ PGDATA. И, как следствие, при повторном перезапуске экземпляра postgesql путем запуска «service postgresql start» процесс postmaster будет считывать параметр «shared_preload_libraries» из файла conf «postgreSQL.auto.conf» в $ PGDATA вместо из / etc /postgresql/10/main/postgres.conf. где параметр = ''. Поэтому, пожалуйста, закомментируйте параметр shared_preload_libraries = 'pg_stat_statements' в postgresql.auto.conf, если вы хотите решить проблему. Спасибо.

0 голосов
/ 20 марта 2019

Я встретил эту проблему сегодня, и я нашел 2 проблемы, которые заблокировали меня:

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

  • Я должен установить postgresql-contrib перед установкой postgresql95-server. О дефекте сообщили в https://github.com/sous-chefs/postgresql/pull/241 Я не могу найти лучшего обходного пути для второго выпуска.
0 голосов
/ 05 ноября 2018

В конце я установил 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
...