因此,我在 docker 中构建了带有 citus 扩展的 PostgreSQL。我在 citus 中使用官方文档,然后在终端中运行此命令。
docker run -d -v /root/volumes/citus-data:/data --network citus-network --name citus_coordinator -p 5500:5432 -e POSTGRES_PASSWORD=mypassword citusdata/citus:11.1
然后数据库成功构建。但我想创建pg_stat_statements
扩展。我配置 postgresql.conf
文件。
shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
pg_stat_statements.max = 10000
track_activity_query_size = 2048
然后我重新启动了 PostgreSQL 容器。写了这个查询
SELECT * FROM pg_stat_statements;
在终端。我看到了这个错误
[55000] ERROR: pg_stat_statements must be loaded via shared_preload_libraries
我不明白,为什么配置文件没有看到这个扩展名,我的错误是什么?
解决
了我正在使用 postgres:latest image 运行 PostgreSQL 容器。然后我进入了容器。所以,我将 citus 从这里安装到容器中。然后安装apt-get install postgresql-contrib
到容器中。下一步,运行create extension pg_stat_statements;
一切对我有用。
两者
citus
和pg_stat_statements
都应该出现在shared_preload_libraries
:shared_preload_libraries = 'citus, pg_stat_statements'
文档
您必须重新启动 Postgresql 服务器才能加载共享库
然后执行
创建扩展 pg_stat_statements;
在你可以使用它之前。