PostgreSQL
 sql >> Database >  >> RDS >> PostgreSQL

Il database Postgres in esecuzione nella finestra mobile continua a rimanere sospeso

Ciò si verifica a causa di una mancata corrispondenza delle autorizzazioni utente nel contenitore della finestra mobile.

Elenco dei file rilevanti nel contenitore:

$ docker exec <container> ls -l /var/lib/postgresql/data/pg_stat_tmp
-rw------- 1 root     root     [...] db_0.stat
-rw------- 1 root     root     [...] db_1.stat
-rw------- 1 root     root     [...] db_2.stat
-rw------- 1 postgres postgres [...] global.stat

possiamo vedere che tutto il db_*.stat i file sono di proprietà di root:root , mentre global.stat è di proprietà di postgres:postgres .

Il controllo dell'utente della finestra mobile ci dà:

$ docker exec <container> whoami
root

Quindi, vorremmo che tutti questi file fossero di proprietà dell'utente postgres. Fortunatamente, è abbastanza facile! Basta impostare l'utente su postgres , e riavvia!

In un dockerfile:

USER postgres

Usando la composizione mobile:

services:
  postgres:
    image: postgres:13
    user: postgres