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