问题描述
我安装了软件包 postgresql11-contrib
。
$ yum list installed | grep contrib
postgresql11-contrib.x86_64 11.11-1PGDG.rhel7 @pgdg11
这是 postgres 的版本。
psql (Postgresql) 11.6
我在 postgresql.conf
中有以下条目导致错误。
shared_preload_libraries = 'pg_stat_statements' # (change requires restart)
pg_stat_statements.max = 10000
pg_stat_statements.track = all
经过一些在线搜索,我发现,我需要运行“在我选择的数据库中运行 CREATE EXTENSION pg_stat_statements”。但要做到这一点,我首先评论了上面提到的 conf 文件中的 3 行,因为我的 psql
服务器无法启动,错误 Could not access file "pg_stat_statements": No such file or directory"
。
https://www.postgresql.org/docs/11/pgstatstatements.html
现在,当我执行命令 CREATE EXTENSION pg_stat_statements;
时,我看到错误“无法打开扩展控制文件“/usr/postgresql/share/extension/pg_stat_statements.control”:没有这样的文件或目录”,并在查看提到的目录,这些不是文件 pg_stat_statements.control
我在这里错过了什么?请帮忙。
解决方法
您似乎在您的 Redhat/CentOS 机器上安装了两个版本的 Postgres。
您可能已经从 PGDG 存储库 (yum.postgresql.org) 以及 CentOS 7 提供的默认 postgresql 安装了 postgresql11。如果您这样做 JSONToHTML
我敢打赌您会看到 v. 11 和 v . 9.2.
只需 rpm -aq | grep postgres
,这将删除 CentOS 存储库中的 v. 9.2 实例。但是,在此之前,您需要转储数据库并停止 Postgres。删除 v. 9.2 后,您需要在启动 Postgres 之前重新执行 yum erase postgresql
,并重新加载您已转储的数据。