PostgreSQL 언어 데이터베이스에 pgx 연결

이 페이지에서는 PostgreSQL pgx 드라이버를 Spanner의 PostgreSQL 언어 데이터베이스에 연결하는 방법을 설명합니다. pgx는 PostgreSQL용 Golang 드라이버입니다.

PGAdapter가 PostgreSQL pgx 드라이버를 사용하여 연결하는 애플리케이션과 같은 머신에서 실행 중인지 확인합니다.

자세한 내용은 PGAdapter 시작을 참조하세요.

  • pgx를 사용하려면 연결 문자열의 사용자 이름과 비밀번호가 필요합니다. PGAdapter는 이를 무시합니다.
  • 기본적으로 PGAdapter는 SSL을 사용 중지합니다. pgx는 기본적으로 SSL이 사용 설정된 상태에서 연결을 처음 시도합니다. 왕복이 한 번 덜 필요하므로 연결 요청에서 SSL을 중지하면 연결 프로세스가 빨라집니다.
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)

다음을 바꿉니다.

  • APPLICATION_HOST: PGAdapter가 실행 중인 머신의 호스트 이름 또는 IP 주소입니다. 로컬에서 실행하는 경우 localhost를 사용할 수 있습니다.
  • PORT: PGAdapter가 실행 중인 포트 번호입니다. PGAdapter가 맞춤 포트에서 실행 중인 경우 연결 문자열에서 이를 변경합니다. 그렇지 않으면 기본 포트인 5432을 사용합니다.

Unix 도메인 소켓

이 섹션에서는 Unix 도메인 소켓을 사용하여 PostgreSQL pgx 드라이버를 PostgreSQL 언어 데이터베이스에 연결하는 방법을 설명합니다. 가능한 가장 낮은 지연 시간을 위해 Unix 도메인 소켓을 사용하세요.

Unix 도메인 소켓을 사용하려면 PGAdapter가 클라이언트 애플리케이션과 동일한 호스트에서 실행되어야 합니다.

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)

다음을 바꿉니다.

  • /tmp: PGAdapter의 기본 도메인 소켓 디렉터리입니다. 이는 -dir 명령줄 인수를 사용하여 변경할 수 있습니다.
  • PORT: PGAdapter가 실행 중인 포트 번호입니다. PGAdapter가 맞춤 포트에서 실행 중인 경우 연결 문자열에서 이를 변경합니다. 그렇지 않으면 기본 포트인 5432을 사용합니다.

다음 단계