我们的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配置文件,我们最近没有进行任何升级或更新。预先感谢您的帮助。
最后我安装了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
我曾经遇到过同样的问题。但后来发现原因是我正在运行psql命令“alter system set shared_preload_libraries ='pg_stat_statements';”,它覆盖$ PGDATA路径下的PostgreSQL.auto.conf。因此,当通过发出“service postgresql start”重新启动postgesql实例时,postmaster进程将从$ PGDATA下的conf文件“postgreSQL.auto.conf”而不是/ etc中读取参数“shared_preload_libraries”。 /postgresql/10/main/postgres.conf。其中参数=''。因此,如果要解决问题,请在postgresql.auto.conf中注释掉参数shared_preload_libraries ='pg_stat_statements'。谢谢。
我今天遇到了这个问题,我发现有两个问题阻止了我:
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