Connessione con psql

Utilizzare psql per l'interazione diretta e il monitoraggio delle strutture dati create all'interno del database. psql è utile anche per testare e monitorare query e prestazioni, installare e modificare script e altre attività di gestione.

L'utente " admin " è membro del ruolo predefinito " PostgreSQL " pg_monitor, che consente l'accesso alle viste e alle funzioni di monitoraggio di PostgreSQL. Per impostazione predefinita, l'utente admin non dispone di autorizzazioni sugli oggetti creati dagli utenti che si creano tramite comandi SQL.

È necessario impostare la password admin prima di utilizzarla per connettersi al database. Per ulteriori informazioni, consultare la pagina Impostazione della password amministratore.

Installazione psql

Per utilizzare psql, installa gli strumenti client PostgreSQL sul tuo sistema locale. È possibile installarli dalla pagina dei download di PostgreSQL oppure tramite il gestore di pacchetti del proprio sistema operativo.

Per ulteriori informazioni su psql, vedi la documentazione di PostgreSQL.

La maggior parte delle istruzioni per l'installazione degli strumenti PostgreSQL presuppone che si desideri installare anche il database. È un'ipotesi ragionevole se hai a che fare con utenti che non hanno accesso a PostgreSQL nel cloud o su un server remoto.

Ecco i passaggi per installare psql come strumento autonomo su macOS, Linux e Windows.

Installazione di psql su macOS con Homebrew

Ti consigliamo Homebrew come gestore di pacchetti per macOS. Con Homebrew, è possibile installare numerose applicazioni, di norma con i programmi disponibili in /usr/local/bin. Il pacchetto homebrew per gli strumenti client PostgreSQL è il pacchetto libpq. Brew lo rende facile da installare:

brew install libpq

C'è un piccolo problema: libpq non si installerà nella directory /usr/local/bin. Per fare in modo che ciò accada, è necessario eseguire:

brew link --force libpq

Quale collegamento simbolico (un file che punta a un altro file o cartella) tutti gli strumenti, non solo libpq, nella directory /usr/local/bin.

Installazione di postgresql-client su Ubuntu

I sistemi Linux, a differenza di macOS, hanno un gestore di pacchetti integrato. Per Ubuntu (e le distribuzioni basate su Debian) si tratta del comando apt. Il client PostgreSQL è distribuito nell'apposita cartella postgresql-client. Per installarlo, eseguire un comando come:

sudo apt-get install postgresql-client

Questo installerà il client PostgreSQL.

Installazione di psql su Red Hat Enterprise Linux

Seguire le istruzioni di installazione di PostgreSQL per le distribuzioni basate su Red Hat. Seleziona la versione, la piattaforma e l'architettura di PostgreSQL, quindi esegui i comandi necessari per configurare il repository. A questo punto, installa solo il pacchetto client, ad esempio sudo dnf install -y postgresql18. Non è necessario installare, inizializzare o avviare un server PostgreSQL per connettersi alla propria distribuzione.

Installazione di " psql " su Windows

Per Windows, utilizzare il programma di installazione PostgreSQL di Enterprise DB. È un pacchetto di installazione completo per PostgreSQL su Windows, ma si può impostare per installare solo gli strumenti della riga di comando come psql. Selezionare le versioni di PostgreSQL e Windows. Una volta scaricato il file eseguibile, eseguirlo. Selezionate solo Strumenti a riga di comando, se non avete bisogno di installare il server.

Dopo l'installazione, si impostano le variabili d'ambiente di Windows in modo da poter utilizzare il client psql nel prompt dei comandi. Accedere a Pannello di controllo > Sistema e sicurezza > Sistema e selezionare* Impostazioni di sistema avanzate*. Da qui appare una casella chiamata Proprietà del sistema. Seleziona Variabili di ambiente. Viene visualizzata una finestra con le due serie di variabili d'ambiente. Nell'insieme superiore, contrassegnato da "Variabili utente per...", selezionare la voce PATH e quindi fare clic sul pulsante Modifica. Viene visualizzata una finestra di modifica. Fare clic su New e aggiungere il percorso al client psql. Il percorso dipende da dove è stato installato PostgreSQL, ma in genere è il seguente:

C:\Program Files\PostgreSQL\<POSTGRES_VERSION>\bin

Dopodiché, fare clic su OK un paio di volte per tornare al desktop. Avviate un nuovo prompt dei comandi e dovreste essere in grado di eseguire psql.

psql Stringhe di connessione

Le stringhe di connessione sono visualizzate nel pannello Endpoint della _Panoramica_della tua distribuzione e possono essere richiamate anche dal plug-in CLICloud Databases e dall'API.

Le informazioni di cui hai bisogno per stabilire un collegamento con psql sono nella sezione "cli" delle tue stringhe di connessione. La tabella contiene una suddivisione per riferimento.

informazioni sulla connessione psql/cli
Nome campo Indice Descrizione
Bin Il file binario consigliato per stabilire una connessione; in questo caso si tratta di psql.
Composed Un comando formattato per stabilire una connessione alla tua distribuzione. Il comando combina l'eseguibile Bin, le impostazioni delle variabili Environment e utilizza Arguments come parametri della riga di comando.
Environment Un elenco di coppie chiave/valore che hai impostato come variabili d'ambiente.
Arguments 0... Le informazioni che vengono passate come argomenti al comando visualizzato nel campo "Bin".
Certificate Base64 Un certificato proprietario del servizio utilizzato per confermare che un'applicazione si stia connettendo al server corretto. Ha una codifica base64.
Certificate Nome Il nome assegnato al certificato proprietario del servizio.
Type Il tipo di pacchetto che utilizza queste informazioni di connessione; in questo caso cli.
  • 0... indica che in un array potrebbero essere presenti una o più di queste voci.

Creazione di una connessione client della riga comandi

Prima di creare una connessione client della riga comandi, assicurarsi di aver impostato la password Admin per la distribuzione.

Il comando ibmcloud cdb deployment-connections gestisce tutto ciò che è coinvolto nella creazione di una connessione client della riga comandi. Ad esempio, per connettersi a una distribuzione denominata "example-postgres", utilizza il seguente comando:

ibmcloud cdb deployment-connections <INSTANCE_NAME_OR_CRN> --start

oppure

ibmcloud cdb cxn <INSTANCE_NAME_OR_CRN> -s

Il comando richiede la parola d'ordine admin ed esegue il client della riga comandi psql per connettersi al database.

Se non hai installato il plug-in della CLI Cloud Databases, connettiti ai tuoi database PostgreSQL utilizzando psql fornendogli la stringa di connessione "composta". Fornisce le variabili di ambiente PGPASSWORD e PGSSLROOTCERT. Impostare PGPASSWORD con la password dell'amministratore e PGSSLROOTCERT con il percorso o il nome del file del certificato proprietario del servizio.

PGPASSWORD=$PASSWORD PGSSLROOTCERT=0b22f14b-7ba2-11e8-b8e9-568642342d40 psql 'host=4a8148fa-3806-4f9c-b3fc-6467f11b13bd.8f7bfd7f3faa4218aec56e069eb46187.databases.appdomain.cloud port=32325 dbname=ibmclouddb user=admin sslmode=verify-full'

Connessione a distribuzioni con soli endpoint privati

Per le distribuzioni che utilizzano esclusivamente endpoint privati, specificare il tipo di endpoint quando si recuperano le informazioni di connessione tramite la CLI di IBM Cloud®:

ibmcloud cdb cxn <INSTANCE_NAME_OR_CRN> -s -e private

L'opzione -e private restituisce i dettagli di connessione dell'endpoint privato. È possibile accedere agli endpoint privati solo da risorse di IBM Cloud dotate di connettività di rete privata, quali una VPC, Cloud VPN o Cloud Shell.

Utilizzo del certificato proprietario del servizio

  1. Copiare le informazioni sul certificato dal pannello Endpoint o dal campo Base64 delle informazioni di connessione.
  2. Se necessario, decodificare la stringa Base64 in testo.
  3. Salva il certificato in un file. (È possibile utilizzare il nome fornito o il proprio nome file).
  4. Fornire il percorso del certificato alla variabile di ambiente ROOTCERT.

Puoi visualizzare il certificato decodificato per la tua distribuzione con il plug-in CLI con il comando:

ibmcloud cdb deployment-cacert <INSTANCE_NAME_OR_CRN>

Il comando decodifica base64 in testo. Copiare e salvare l'output del comando in un file e fornire il percorso del file alla variabile di ambiente ROOTCERT.

Un'altra opzione è quella di aggiungere &sslrootcert=/path/to/cert alla stringa di connessione, ad esempio:

postgres://$USERNAME:$PASSWORD@6eb96148-90bc-49a0-a5a4-dc2b53334653.btdl8mld0r95fevivv30.databases.appdomain.cloud:32109/ibmclouddb?sslmode=verify-full&sslrootcert=/path/to/cert