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:
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:
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 = 60Stringa di connessione
$ Postgresql: //:@:/[?"Dove:
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 = myappComponenti 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: //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: // localhostSe sono necessari un nome utente e una password, l'URI aggiornato sembra questo:
$ Postgres: //: @localhostSe 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: 4444Possiamo 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: 3333In 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_dbParametri 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 = 30Un 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 = RequisitoDai 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 = 5432Esistono 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_dbConclusione
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.