1

So, I built the PostgreSQL with citus extension in docker. I use the official documentation in citus, then I run this command in the terminal.

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

Then Database successfully building. But I want to create the pg_stat_statements extension. I configuration the postgresql.conf file.

shared_preload_libraries = 'pg_stat_statements'
pg_stat_statements.track = all
pg_stat_statements.max = 10000
track_activity_query_size = 2048

Then I restarted the PostgreSQL container. Wrote the this query

SELECT * FROM pg_stat_statements;

in terminal. I saw this error

[55000] ERROR: pg_stat_statements must be loaded via shared_preload_libraries

I didn't understand, why the config file didn't see this extension, What was my mistake?

Solved I am running the PostgreSQL container with postgres:latest image. Then I entered the container. So, I installed the citus from here into the container. Then installed apt-get install postgresql-contrib into the container.Next step, run create extension pg_stat_statements; And everything worked for me.

3
  • I don't see you defining a persistent volume mapping in your docker command; without persistent storage, whatever you change inside a container will disappear upon restart.
    – mustaccio
    Oct 13, 2022 at 13:00
  • @mustaccio oh sorry , I editin the post Oct 14, 2022 at 7:00
  • @GismatHusein you can put the "solved" part in an answer (and remove it from the question). Oct 17, 2022 at 12:54

2 Answers 2

1

Both citus and pg_stat_statements should be present in shared_preload_libraries: shared_preload_libraries = 'citus, pg_stat_statements'

Docs

1
  • 1
    I have the same issue again. Oct 13, 2022 at 12:35
0

You have to restart the Postgresql Server in order to load the shared library

and afterwards execute

CREATE EXTENSION pg_stat_statements;

Before you can use it.

1
  • I do it. But I see the same error. pg_stat_statements must be loaded via shared_preload_libraries Oct 13, 2022 at 10:14

This site is temporarily in read-only mode and not accepting new answers.

Not the answer you're looking for? Browse other questions tagged .