Questa pagina spiega come connettere il driver PostgreSQL pgx a un database con dialetto PostgreSQL in Spanner. pgx
è un driver Golang per PostgreSQL.
Verifica che PGAdapter sia in esecuzione sulla stessa macchina dell'applicazione che si connette utilizzando il driver pgx PostgreSQL.
Per ulteriori informazioni, consulta Avvia PGAdapter.
pgx
richiede un nome utente e una password nella stringa di connessione. PGAdapter li ignora.- Per impostazione predefinita, PGAdapter disabilita SSL.
pgx
per impostazione predefinita tenta prima di connettersi con SSL abilitato. La disattivazione di SSL nella richiesta di connessione velocizza il processo di connessione, in quanto richiede un round trip in meno.
connString := "postgres://uid:pwd@APPLICATION_HOST:PORT/DATABASE_NAME?sslmode=disable"
ctx := context.Background()
conn, err := pgx.Connect(ctx, connString)
if err != nil {
return err
}
defer conn.Close(ctx)
var greeting string
err = conn.QueryRow(ctx, "select 'Hello world!' as hello").Scan(&greeting)
if err != nil {
return err
}
fmt.Printf("Greeting from Cloud Spanner PostgreSQL: %v\n", greeting)
Sostituisci quanto segue:
- APPLICATION_HOST: il nome host o l'indirizzo IP
della macchina in cui è in esecuzione PGAdapter. Se esegui l'app localmente, puoi utilizzare
localhost
. - PORT: il numero di porta su cui è in esecuzione PGAdapter. Modifica questa impostazione nella stringa di connessione se PGAdapter è
in esecuzione su una porta personalizzata. Altrimenti, utilizza la porta predefinita,
5432
.
Socket di dominio Unix
Questa sezione spiega come utilizzare i socket di dominio Unix per connettere il driver pgx PostgreSQL a un database con dialetto PostgreSQL. Utilizza i socket di dominio Unix per la latenza più bassa possibile.
Per utilizzare i socket di dominio Unix, PGAdapter deve essere in esecuzione sullo stesso host dell'applicazione client.
connString := "host=/tmp port=PORT database=DATABASE_NAME"
ctx := context.Background()
conn, err := pgx.Connect(ctx, connString)
if err != nil {
return err
}
defer conn.Close(ctx)
var greeting string
err = conn.QueryRow(ctx, "select 'Hello world!' as hello").Scan(&greeting)
if err != nil {
return err
}
fmt.Printf("Greeting from Cloud Spanner PostgreSQL: %v\n", greeting)
Sostituisci quanto segue:
- /tmp: la directory socket di dominio predefinita per
PGAdapter. Puoi modificare questa impostazione utilizzando l'argomento della riga di comando
-dir
. - PORT: il numero di porta su cui è in esecuzione PGAdapter. Modifica questa impostazione nella stringa di connessione se PGAdapter è
in esecuzione su una porta personalizzata. Altrimenti, utilizza la porta predefinita,
5432
.
Passaggi successivi
- Scopri di più su PGAdapter.
- Scopri di più sulle opzioni di connessione pgx nel repository GitHub di PGAdapter.