Questa pagina spiega come connettere il driver pgx di PostgreSQL a un database di dialetti PostgreSQL in Spanner. pgx è un driver Golang per PostgreSQL.
Verifica che PGAdapter sia in esecuzione sulla stessa macchina dell'applicazione che si connette mediante il driver pgx di PostgreSQL.
Per saperne di più, consulta Avvia PGAdapter.
pgxrichiede un nome utente e una password nella stringa di connessione. PGAdapter li ignora.- Per impostazione predefinita, PGAdapter disabilita SSL.
pgxper 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. In caso di esecuzione locale, puoi utilizzare
localhost. - PORT: il numero di porta su cui è in esecuzione PGAdapter. Se PGAdapter è in esecuzione su una porta personalizzata, modifica questa impostazione nella stringa di connessione. 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 di PostgreSQL a un database di dialetti 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 dei socket di dominio predefinita per PGAdapter. Puoi cambiarla utilizzando l'argomento della riga di comando
-dir. - PORT: il numero di porta su cui è in esecuzione PGAdapter. Se PGAdapter è in esecuzione su una porta personalizzata, modifica questa impostazione nella stringa di connessione. 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.
- Consulta una panoramica dei driver e degli ORM supportati per Spanner.