將 pgx 連線至 PostgreSQL 方言資料庫

本頁面說明如何將 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

後續步驟

  • 進一步瞭解 PGAdapter
  • 如要進一步瞭解 pgx 連線選項,請前往 PGAdapter GitHub 存放區。