Esta página explica como ligar o controlador pgx do PostgreSQL a uma base de dados de dialeto do PostgreSQL no Spanner. pgx
é um controlador Golang para PostgreSQL.
Verifique se o PGAdapter está a ser executado na mesma máquina que a aplicação que está a estabelecer ligação através do controlador pgx do PostgreSQL.
Para mais informações, consulte o artigo Inicie o PGAdapter.
pgx
requer um nome de utilizador e uma palavra-passe na string de ligação. O PGAdapter ignora-os.- Por predefinição, o PGAdapter desativa o SSL.
pgx
por predefinição, tenta primeiro estabelecer ligação com o SSL ativado. Desativar o SSL no pedido de ligação acelera o processo de ligação, uma vez que requer menos uma viagem de ida e volta.
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 o seguinte:
- APPLICATION_HOST: o nome de anfitrião ou o endereço IP da máquina onde o PGAdapter está em execução. Se estiver a executar localmente, pode usar
localhost
. - PORT: o número da porta onde o PGAdapter está a ser executado. Altere isto na string de ligação se o PGAdapter estiver a ser executado numa porta personalizada. Caso contrário, use a porta predefinida,
5432
.
Sockets de domínio Unix
Esta secção explica como usar sockets de domínio Unix para ligar o controlador pgx do PostgreSQL a uma base de dados de dialeto PostgreSQL. Use sockets de domínio Unix para a latência mais baixa possível.
Para usar sockets de domínio Unix, o PGAdapter tem de estar em execução no mesmo anfitrião que a aplicação 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 o seguinte:
- /tmp: o diretório de soquetes de domínio predefinido para o PGAdapter. Pode alterar esta definição através do argumento da linha de comandos
-dir
. - PORT: o número da porta onde o PGAdapter está a ser executado. Altere isto na string de ligação se o PGAdapter estiver a ser executado numa porta personalizada. Caso contrário, use a porta predefinida,
5432
.
O que se segue?
- Saiba mais acerca do PGAdapter.
- Saiba mais sobre as opções de ligação pgx no repositório do GitHub do PGAdapter.