Comprendi e usa la stringa di connessione Postgres

Comprendi e usa la stringa di connessione Postgres
PostgreSQL è un sistema di database potente, open source, oggetto-relazionale. Sfrutta il linguaggio SQL con funzionalità aggiuntive per migliori carichi di lavoro di sicurezza e ridimensionamento. PostgreSQL è ben noto per la sua affidabilità, integrità dei dati, estensibilità e robusto set di funzionalità. Ulteriori informazioni su PostgreSQL.

In questa guida, daremo un'occhiata agli URL di connessione in PostgreSQL.

Prerequisiti

Per eseguire i passaggi dimostrati in questa guida, sono necessari i seguenti componenti:

  • Un ambiente Linux funzionante. Ad esempio, controlla questa guida sull'installazione di Ubuntu su VirtualBox.
  • L'ultima versione installata e configurata di PostgreSQL. Dai un'occhiata all'installazione di PostgreSQL su Ubuntu.

Facoltativamente, è possibile configurare un front-end PostgreSQL per lavorare con uno strumento GUI invece del classico Psql conchiglia.

Valori di codifica percentuale

Quando si utilizza gli URL di connessione PostgreSQL, si prevede che si imbatterà in valori di codifica percentuale. Significa, se c'è un carattere con un significato speciale all'interno dell'URL, deve essere convertito nel suo valore di codifica percentuale in modo che le librerie e le app possano interpretarlo correttamente.

Ecco un breve elenco che devi tenere a mente:

  • (spazio): %20
  • %: %25
  • &: %26
  • /: %2f
  • :: %3A
  • =: %3D
  • ?: %3f
  • @: %40
  • [: %5b
  • ]: %5 D

String di connessione PostgreSQL

Durante la progettazione/distribuzione di qualsiasi applicazione sostenuta dal database, uno dei primi passaggi è quello di collegare l'app con il motore di database corretto. Quando si tratta di fornire i parametri di connessione, può essere fatto in due formati:

Stringhe chiari parole chiave/valore

$ host = LocalHost Port = 5432 dbname = demo_db Connection_timeout = 60

Stringa di connessione

$ Postgresql: //:@:/[?"
$ Postgres: //:@:/[?"

Dove:

  • L'identificatore dello schema definisce il protocollo da utilizzare. I valori accettati sono Postgres E Postgresql.
  • Specifiche dell'utente Fare riferimento alle credenziali dell'utente che sono necessarie per connettersi a PostgreSQL.
    • Nome utente: il nome utente dell'utente.
    • Password: la password dell'utente.
  • Le specifiche dell'host sono la sezione della stringa di connessione che descrive il nome host e la porta a cui connettersi a:
    • ospite: Nome host, indirizzo IP, nome DNS o nome risolvibile localmente del server a cui connettersi.
    • porta: La porta che il server PostgreSQL sta ascoltando.
  • IL db_name descrive il nome del database a cui connettersi.
  • IL aggiuntivo_parameters è una sezione che contiene parametri aggiuntivi che possono influire sul comportamento di connessione. L'elenco inizia con il "?" segno.
    • Coppie di parametri: l'elenco dei parametri è costituito da coppie di valore chiave. Il valore di ciascuna chiave è separato da un segno uguale (=). Ogni coppia di valore chiave è separata da AmperSands (&).

Ecco un esempio di URL di connessione PostgreSQL che incorpora tutti questi componenti:

$ POSTGRESQL: // HOST1: 123, host2: 456/SOMEDB?Target_session_atrs = Any & Application_name = myapp

Componenti Uri di connessione diversi

Specifica del tipo URL

L'URL di connessione viene utilizzato per connettersi a un database PostgreSQL. È importante utilizzare le specifiche del protocollo adeguate in modo che le app e le librerie possano interpretare le informazioni fornite nel contesto corretto.

PostgreSQL accetta i seguenti designatori di schemi URL:

$ postgresql: //
$ Postgres: //

Nome utente e password

Questa sezione dell'URI contiene le credenziali dell'utente. A meno che tu non stia utilizzando la configurazione predefinita, questa sezione deve essere inclusa.

Per specificare solo il nome utente, è possibile utilizzare la seguente struttura URI:

$ Postgres: //@

Se è necessaria una password, la sintassi della sezione sembra questa:

$ Postgres: //:@

Specifiche host

Questa sezione specifica l'indirizzo di rete del server PostgreSQL.

Se l'applicazione deve tentare la connessione alla porta PostgreSQL predefinita (5432) sulla macchina locale, l'URI sembra questo:

$ Postgers: // localhost

Se sono necessari un nome utente e una password, l'URI aggiornato sembra questo:

$ Postgres: //: @localhost

Se il server PostgreSQL si trova su un host remoto e/o ascolta una porta non standard, la struttura URI cambia drasticamente. Ad esempio, per connettersi a un server PostgreSQL che si trova a 192.168.100.223 E per ascoltare la porta 4444, l'URI di connessione sembra questo:

$ POSTGRES: //:@192.168.100.223: 4444

Possiamo fornire ulteriori informazioni in questa sezione. Ad esempio, i server di fallback. Se c'è un server PostgreSQL di Fallback a 192.168.100.100 che ascolta la porta 3333, possiamo aggiungerlo al seguente URI di connessione:

$ POSTGRES: //:@192.168.100.223: 4444.192.168.100.100: 3333

In questo esempio, l'applicazione prima cerca di connettersi 192.168.100.223: 4444. Dopo fallimento, tenta di connettersi all'indirizzo di fallback che è 192.168.100.100: 3333.

Nome del database

Questa sezione tratta il database a cui l'applicazione si collega. In PostgreSQL, è necessario connettersi a un database specifico quando si stabilisce una connessione.

Il nome del database deve essere dichiarato a partire da una barra (/) in avanti e procede fino alla fine della linea o un punto interrogativo (?).

Ad esempio, per connettersi al database demo_db su un server PostgreSQL che ascolta su 192.168.100.223: 4444, l'URI di connessione sembra questo:

$ POSTGRES: //:@192.168.100.223: 4444/demo_db

Parametri aggiuntivi

L'ultima parte dell'URI di connessione è riservata per ulteriori parametri di connessione. L'elenco inizia con un punto interrogativo (?) e continua fino alla fine dell'URI.

Come accennato in precedenza, i parametri sono coppie di valore chiave. Il valore di una chiave è separato da un segno uguale (=) e ciascuna coppia di valore chiave è separata da un AmperSand (&).

Ad esempio, il connesione finita Il parametro dichiara il timeout per la connessione in pochi secondi. Per applicare un timeout di 30 secondi, applicarlo al parametro URI di connessione come segue:

$ POSTGRES: //:@192.168.100.223: 4444/demo_db?Connection_timeout = 30

Un altro parametro che è SSLMODE determina la priorità di una negoziazione di connessione SSL/IP sicura. Possiamo aggiungerlo alla seguente connessione URI:

$ POSTGRES: //:@192.168.100.223: 4444/demo_db?Connection_timeout = 30 e sslMode = Requisito

Dai un'occhiata alla documentazione PostgreSQL nell'elenco dei parametri di connessione disponibili.

Utilizzando l'URI di connessione PostgreSQL

In questa sezione, abbiamo una rapida dimostrazione dell'utilizzo dell'URI di connessione PostgreSQL in azione. Si noti che a seconda del linguaggio di programmazione, dei moduli, dei quadri e di altri fattori, l'implementazione dell'URI di connessione varia.

Qui, usiamo l'URI di connessione con Psql Per connettersi al database desiderato. In generale, per connettersi a un database in Psql, Il comando è il seguente:

$ psql - -host = - -dbname = --username = --port =

Ad esempio, per connettersi al database Demo_DB che è ospitato su un server PostgreSQL locale che ascolta la porta 5432 come Postgres, il comando sembra questo:

$ PSQL -HOST = LOCALHOST -DBName = Demo_DB --UserName = Postgres --Port = 5432

Esistono anche altri modi per connettersi a un database PostgreSQL. Ad esempio, utilizzando la seguente connessione URI:

$ PSQL POSTGRES: //:@:/

Usando la struttura, possiamo costruire un comando più semplice per connetterci al database Demo_DB:

$ PSQL Postgres: // Postgres@localhost/demo_db

Conclusione

In questa guida, abbiamo discusso dell'URI di connessione PostgreSQL, come interpretare il suo varo componente e come costruire un URI di connessione con una determinata serie di informazioni. L'URI di connessione è un modo interessante di codificare tutte le informazioni richieste per una connessione a un determinato database all'interno di una singola stringa. Abbiamo anche dimostrato su come utilizzare un URI di connessione per connettersi a un database PostgreSQL.

Interessato a saperne di più su PostgreSQL? Dai un'occhiata alla categoria PostgreSQL che contiene centinaia di guide e tutorial su vari aspetti di PostgreSQL.