Nesta página, explicamos como conectar o driver pgx do PostgreSQL a um banco de dados de dialeto do PostgreSQL
no Spanner. pgx
é um driver do Go para PostgreSQL.
Verifique se o PGAdapter está em execução na mesma máquina que o aplicativo que está se conectando usando o driver pgx do PostgreSQL.
Para mais informações, consulte Iniciar o PGAdapter.
- O
pgx
exige um nome de usuário e uma senha na string de conexão. O PGAdapter ignora esses comandos. - Por padrão, o PGAdapter desativa o SSL. Por padrão, o
pgx
primeiro tenta se conectar com o SSL ativado. Desativar o SSL na solicitação de conexão acelera o processo, já que exige uma viagem de ida e volta a menos.
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)
Substitua:
- APPLICATION_HOST: o nome do host ou endereço IP da máquina em que o PGAdapter está sendo executado. Se você estiver executando localmente, use
localhost
. - PORT: o número da porta em que o PGAdapter está
em execução. Mude isso na string de conexão se o PGAdapter estiver
sendo executado em uma porta personalizada. Caso contrário, use a porta padrão,
5432
.
Soquetes de domínio Unix
Nesta seção, explicamos como usar soquetes de domínio Unix para conectar o driver pgx do PostgreSQL a um banco de dados de dialeto PostgreSQL. Use soquetes de domínio Unix para ter a menor latência possível.
Para usar soquetes de domínio Unix, o PGAdapter precisa estar em execução no mesmo host que o aplicativo cliente.
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)
Substitua:
- /tmp: o diretório de soquete de domínio padrão para
PGAdapter. Isso pode ser mudado usando o argumento de linha de comando
-dir
. - PORT: o número da porta em que o PGAdapter está
em execução. Mude isso na string de conexão se o PGAdapter estiver
sendo executado em uma porta personalizada. Caso contrário, use a porta padrão,
5432
.
A seguir
- Saiba mais sobre o PGAdapter.
- Saiba mais sobre as opções de conexão do pgx no repositório do PGAdapter no GitHub.