GNU/Linux >> Linux Esercitazione >  >> Linux

Postgresql 9.3 su Centos 7 con PGDATA personalizzato

Devi creare un postgresql.service personalizzato file in /etc/systemd/system/ , che sovrascrive il PGDATA predefinito variabile d'ambiente. Il tuo file di servizio personalizzato può .include il file di servizio postgresql predefinito, quindi devi solo aggiungere ciò che vuoi modificare. In questo modo, gli aggiornamenti possono ancora modificare/migliorare? roba nel file di servizio predefinito, mentre la tua modifica viene preservata.

Ecco come l'ho appena fatto in Centos 7:

cat <<END >/etc/systemd/system/postgresql.service
.include /lib/systemd/system/postgresql.service
[Service]
Environment=PGDATA=/mnt/postgres/data ## <== SET THIS TO YOUR WANTED $PGDATA
END

systemctl daemon-reload

systemctl restart postgresql.service

Verifica :

ps -ax | grep [p]ostgres

Aggiornamento:

Anziché creare manualmente il file e aggiungere la riga .include, puoi anche utilizzare il metodo integrato di systemd:

systemctl edit postgresql.service

Questo aprirà il tuo editor predefinito e salverà le tue modifiche a /etc/systemd/system/postgresql.service.d/override.conf


Penso che il modo più "CentOS 7" per farlo sia copiare il file di servizio:

sudo cp /usr/lib/systemd/system/postgresql-9.6.service /etc/systemd/system/postgresql-9.6.service

Quindi modifica il file /etc/systemd/system/postgresql-9.6.service :

# Location of database directory
Environment=PGDATA=/mnt/volume/var/lib/pgsql/9.6/data/

Quindi avvialo sudo systemctl start postgresql-9.6 e verifica:

# sudo ps -ax | grep postmaster
32100 ?        Ss     0:00 /usr/pgsql-9.6/bin/postmaster -D /mnt/volume/var/lib/pgsql/9.6/data/

prova questo:

 ## Login with postgres user
 su - postgres
 export PGDATA=/your_path/data
 pg_ctl -D $PGDATA start &

Sembra che il vero problema fosse l'impostazione delle variabili d'ambiente, che ho ottenuto lavorando nel seguente thread:Centos 7 variabili d'ambiente per il servizio PostgresIl problema è la variabile PGDATA impostata all'interno del custom /etc/systemd/system/postgresql-9.3.service che dovrebbe essere creato dal contenuto di /usr/lib/systemd/system/postgresql-9.3.service che utilizza la var. PGDATA predefinita


Linux
  1. Iniziare con ls

  2. Firewalld non si avvia su CentOS 8 con un DBusException

  3. Sostituire Newline con Nul?

  4. Come lavorare con CentOS Web Panel File Manager

  5. Permessi dei file in Linux con esempio

Comando Linux WC con esempi

Firme digitali con GnuPG

Gestire cgroup con systemd

Iniziare con systemctl

Come installare PostgreSQL con pgAdmin su CentOS 8

Centos 7:Per iniziare