我们的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配置文件,最近也没有进行任何升级或更新。提前感谢您的帮助。
发布于 2018-11-06 02:41:24
最后我安装了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
发布于 2019-03-01 04:39:08
我曾经遇到过同样的问题。但后来发现原因是我正在运行psql命令"alter system set shared_preload_libraries='pg_stat_statements';",,它覆盖了$PGDATA路径下的PostgreSQL.auto.conf。因此,当通过发出"service postgresql start“来重新启动postgesql实例时,邮局主管进程将从$PGDATA下的conf文件"postgreSQL.auto.conf”中读取参数"shared_preload_libraries“,而不是从/etc/postgresql/10/main/postgres.conf中读取参数”postgreSQL.auto.conf“。其中参数= '‘。所以,如果你想解决这个问题,请在postgresql.auto.conf中注释掉参数shared_preload_libraries='pg_stat_statements‘。谢谢。
https://stackoverflow.com/questions/53158500
复制相似问题