GNU/Linux >> Linux Esercitazione >  >> Linux

Crea database PostgreSQL senza privilegi di root

Puoi eseguire PostgreSQL senza privilegi di root creando una nuova istanza (che PostgreSQL chiama "cluster") e avviandola.

Non puoi usare gli script init di Ubuntu, strumenti wrapper come pg_ctlcluster , ecc. se lo fai. Devi utilizzare solo gli strumenti di PostgreSQL.

Per creare la nuova istanza PostgreSQL con il superutente uguale al tuo nome utente, la directory dei dati nella tua home directory e l'autenticazione md5 abilitata per impostazione predefinita, usa:

initdb -D $HOME/my_postgres -A md5 -U $USER

Regolare come desiderato; vedi initdb --help .

Dovrai quindi modificare postgresql.conf per modificare il port a uno non predefinito, poiché il tuo sistema probabilmente esegue il proprio postgres sulla porta predefinita 5432. (Se vuoi limitare l'accesso strettamente a te, puoi invece impostare listen_addresses = '' e unix_socket_directories = /home/myuser/postgres_socket o qualsiasi altra cosa. Ma è più semplice usare semplicemente una porta diversa.)

Per avviarlo:

pg_ctl -D $HOME/my_postgres -w start

Per connetterti, specifica la porta che hai scelto:

psql -p 5434 ...

(Se hai cambiato unix_socket_directories vorrai anche specificare il percorso che hai dato, come -h /home/myuser/postgres_socket .)

Per fare psql etc connettiti al tuo postgres per impostazione predefinita, modifica il tuo ~/.bashrc per aggiungere qualcosa come

export PGPORT=5434

ma tieni presente che influenzerà anche la porta predefinita per le connessioni ad altri host.

Per fermarlo:

pg_ctl -D $HOME/my_postgres -w stop

ma puoi anche semplicemente spegnerlo senza fermarlo, non importa e si ripristinerà in modo sicuro quando lo avvierai la prossima volta.

Per avviarlo automaticamente quando accedi quando è impostato nella tua home directory, dovresti utilizzare le funzionalità di esecuzione all'avvio del tuo ambiente desktop. Variano a seconda dell'ambiente e della versione, quindi non posso fornire dettagli qui; è diverso per GNOME 3, Unity (ubuntu), KDE, XFCE, ecc.

Si noti che questo approccio utilizza ancora i pacchetti di sistema per PostgreSQL. Questo è importante perché se disinstalli (diciamo) PostgreSQL 9.4 e installi 9.6, la tua copia nella tua home directory smetterà di funzionare. Se lo vuoi completamente indipendente dai pacchetti di sistema, come probabilmente fai se non controlli il sistema, dovresti compilare PostgreSQL dai sorgenti o utilizzare l'installer binario per l'installazione all'interno della tua home directory.


Linux
  1. Come creare un database in MySQL con MySQL Workbench

  2. Cambia la password di root con Sudo, senza Su?

  3. Come creare database in cPanel

  4. Esegui ifconfig senza sudo

  5. Come creare un utente root aggiuntivo?

Come creare un database in PostgreSQL

Installa PostgreSQL su Ubuntu 20.04

Come installare PostgreSQL 14 in RHEL 8 Linux

Come creare un database PostgreSQL?

Come creare un database in MySQL

15 Pratici comandi di amministrazione del database PostgreSQL