0

我已经安装了软件包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服务器无法以 error 启动could not access file "pg_stat_statements": No such file or directory"

https://www.oreilly.com/library/view/mastering-postgresql-11/9781789537819/a6a44124-558b-42f9-a0f3-eb52ea2799d4.xhtml

https://www.postgresql.org/docs/11/pgs​​tatstatements.html

现在,当我执行命令时,CREATE EXTENSION pg_stat_statements;我看到错误“无法打开扩展控制文件”/usr/postgresql/share/extension/pg_stat_statements.control“:没有这样的文件或目录”并且在查看提到的目录时,这些不是文件pg_stat_statements.control

我在这里想念什么?请帮忙。

4

1 回答 1

0

您似乎在 Redhat/CentOS 机器上安装了两个版本的 Postgres。您可能已经从 PGDG 存储库 (yum.postgresql.org) 以及 CentOS 7 提供的默认 postgresql 安装了 postgresql11。如果您这样做了,rpm -aq | grep postgres我敢打赌您会看到 v. 11 和 v. 9.2。

Just yum erase postgresql,这将删除 CentOS 存储库中的 v. 9.2 实例。但是,在您这样做之前,您需要转储数据库并停止 Postgres。删除 v. 9.2 后,您需要initdb在启动 Postgres 之前重新启动,并重新加载您转储的数据。

于 2021-03-12T23:36:14.747 回答