因此,我在码头上构建了带有citus扩展的PostgreSQL。我在citus中使用正式文档,然后在终端中运行这个命令。
docker run -d --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我不明白,为什么配置文件没有看到这个扩展名,我的错误是什么?
发布于 2022-10-18 08:35:16
解决了
我正在使用PostgreSQL映像运行postgres:latest容器。然后我进了集装箱。因此,我将来自这里的citus安装到容器中。然后将apt-get install postgresql-contrib安装到container.Next步骤中,运行create extension pg_stat_statements;,一切都对我有效。
发布于 2022-10-13 13:11:10
如果使用citus,那么citus应该始终是您的第一个共享预加载库。因此,您的postgres.conf应该看起来像:
shared_preload_libraries = 'citus,pg_stat_statements'
pg_stat_statements.track = all
pg_stat_statements.max = 10000
track_activity_query_size = 2048如果您有员工,您也需要更改他们的postgresql.conf。
然后,您需要重新启动数据库(协调器和工作人员),您可以通过以下方法实现:
docker restart <container_name>您可以确认这与以下内容一起工作:
SHOW shared_preload_libraries;https://stackoverflow.com/questions/74053201
复制相似问题