GNU/Linux >> Linux Esercitazione >  >> Linux

Come configurare postgresql per la prima volta?

Le altre risposte non sono state del tutto soddisfacenti per me. Ecco cosa ha funzionato per postgresql-9.1 su Xubuntu 12.04.1 LTS.

  1. Connettiti al database predefinito con l'utente postgres:

    sudo -u postgres psql template1

  2. Imposta la password per l'utente postgres, quindi esci da psql (Ctrl-D):

    ALTER USER postgres con password cifrata 'xxxxxxx';

  3. Modifica il pg_hba.conf file:

    sudo vim /etc/postgresql/9.1/main/pg_hba.conf

    e cambia "peer" in "md5" nella riga relativa a postgres:

    local      tutti     postgres peer md5

    Per sapere quale versione di postgresql stai utilizzando, cerca la cartella della versione in /etc/postgresql . Inoltre, puoi usare Nano o un altro editor invece di VIM.

  4. Riavvia il database :

    sudo /etc/init.d/postgresql restart

    (Qui puoi controllare se ha funzionato con psql -U postgres ).

  5. Crea un utente con il tuo stesso nome (per trovarlo puoi digitare whoami ):

    sudo createuser -U postgres -d -e -E -l -P -r -s <my_name>

    Le opzioni dicono a postgresql di creare un utente che può accedere, creare database, creare nuovi ruoli, è un superutente e avrà una password crittografata. Quelli veramente importanti sono -P -E, in modo che ti venga chiesto di digitare la password che verrà crittografata, e -d in modo che tu possa fare un createdb .

    Attenti alle password :ti chiederà prima due volte la nuova password (per il nuovo utente), ripetuta, e poi una volta la password postgres (quella specificata al punto 2).

  6. Di nuovo, modifica il pg_hba.conf file (vedi il passaggio 3 sopra) e cambia "peer" in "md5" nella riga relativa a "tutti" gli altri utenti:

    local      tutti     tutti peer md5

  7. Riavvia (come nel passaggio 4) e verifica di poter accedere senza -U postgres:

    modello psql1

    Nota che se fai un semplice psql , fallirà poiché proverà a connetterti a un database predefinito con il tuo stesso nome (ad esempio whoami ). template1 è il database di amministrazione presente fin dall'inizio.

  8. Ora createdb <dbname> dovrebbe funzionare.


Sotto Linux PostgresQL è solitamente configurato per consentire all'utente root di accedere come superutente postgres postgres dalla shell (console o ssh).

$ psql -U postgres

Quindi dovresti semplicemente creare un nuovo database come al solito:

CREATE ROLE myuser LOGIN password 'secret';
CREATE DATABASE mydatabase ENCODING 'UTF8' OWNER myuser;

Dovrebbe funzionare senza toccare pg_hba.conf . Se vuoi essere in grado di farlo utilizzando uno strumento GUI sulla rete, allora dovresti fare confusione con pg_hba.conf .


Ci sono due metodi che puoi usare. Entrambi richiedono la creazione di un utente e un database.

  1. Utilizzando createuser e createdb ,

    $ sudo -u postgres createuser --superuser $USER
    $ createdb mydatabase
    $ psql -d mydatabase
    
  2. Utilizzo dei comandi di amministrazione SQL e connessione con una password su TCP

    $ sudo -u postgres psql postgres
    

    E poi nella shell psql

    CREATE ROLE myuser LOGIN PASSWORD 'mypass';
    CREATE DATABASE mydatabase WITH OWNER = myuser;
    

    Quindi puoi accedere,

    $ psql -h localhost -d mydatabase -U myuser -p <port>
    

    Se non conosci la porta, puoi sempre ottenerla eseguendo quanto segue, come postgres utente,

    SHOW port;
    

    Oppure,

    $ grep "port =" /etc/postgresql/*/main/postgresql.conf
    

Nota a margine:il postgres utente

Suggerisco NON modificando il postgres utente.

  1. Normalmente è bloccato dal sistema operativo. Nessuno dovrebbe "accedere" al sistema operativo come postgres . Dovresti avere root per autenticarti come postgres .
  2. Normalmente non è protetto da password e delega al sistema operativo host. Questa è una buona cosa . Questo normalmente significa per accedere come postgres che è l'equivalente PostgreSQL di SA di SQL Server , devi disporre dell'accesso in scrittura ai file di dati sottostanti. E ciò significa che normalmente potresti comunque creare scompiglio.
  3. Mantenendo questa opzione disabilitata, elimini il rischio di un attacco di forza bruta tramite un super utente con nome. Nascondere e oscurare il nome del superutente ha dei vantaggi.

Linux
  1. Come installare e configurare Postgres 13 Ubuntu 20.04

  2. Come installare e configurare Postgres 13 su Centos 8

  3. Come installare e configurare Postgres 14 su Fedora 34

  4. Come modificare il fuso orario per un container Docker

  5. Configura Jenkins per diversi user.home

Come configurare il tuo sistema operativo Raspberry Pi per usarlo per la prima volta

Come conoscere i gruppi di un utente Linux

Come configurare ONLYOFFICE CRM per le tue esigenze aziendali

Come disabilitare l'accesso SSH per l'utente root in Linux?

Come installare e configurare il firewall CSF per Linux

Come posso cancellare le credenziali in AWS Configure?