connString:="postgres://uid:pwd@APPLICATION_HOST:PORT/DATABASE_NAME?sslmode=disable"ctx:=context.Background()conn,err:=pgx.Connect(ctx,connString)iferr!=nil{returnerr}deferconn.Close(ctx)vargreetingstringerr=conn.QueryRow(ctx,"select 'Hello world!' as hello").Scan(&greeting)iferr!=nil{returnerr}fmt.Printf("Greeting from Cloud Spanner PostgreSQL: %v\n",greeting)
更改下列內容:
APPLICATION_HOST:執行 PGAdapter 的電腦主機名稱或 IP 位址。如要在本機執行,可以使用 localhost。
[[["容易理解","easyToUnderstand","thumb-up"],["確實解決了我的問題","solvedMyProblem","thumb-up"],["其他","otherUp","thumb-up"]],[["難以理解","hardToUnderstand","thumb-down"],["資訊或程式碼範例有誤","incorrectInformationOrSampleCode","thumb-down"],["缺少我需要的資訊/範例","missingTheInformationSamplesINeed","thumb-down"],["翻譯問題","translationIssue","thumb-down"],["其他","otherDown","thumb-down"]],["上次更新時間:2025-09-05 (世界標準時間)。"],[],[],null,["# Connect pgx to a PostgreSQL-dialect database\n\nThis page explains how to connect the PostgreSQL pgx driver to a PostgreSQL-dialect database\nin Spanner. `pgx` is a Golang driver for PostgreSQL.\n\nVerify that PGAdapter is running on the same machine as the\napplication that is connecting using the PostgreSQL pgx driver.\n\nFor more information, see [Start PGAdapter](/spanner/docs/pgadapter-start).\n\n- `pgx` requires a username and password in the connection string. PGAdapter ignores these.\n- By default, PGAdapter disables SSL. `pgx` by default first tries to connect with SSL enabled. Disabling SSL in the connection request speeds up the connection process, as it requires one fewer round trip.\n\n connString := \"postgres://uid:pwd@\u003cvar translate=\"no\"\u003eAPPLICATION_HOST\u003c/var\u003e:\u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e/\u003cvar translate=\"no\"\u003eDATABASE_NAME\u003c/var\u003e?sslmode=disable\"\n ctx := context.Background()\n conn, err := pgx.Connect(ctx, connString)\n if err != nil {\n return err\n }\n defer conn.Close(ctx)\n\n var greeting string\n err = conn.QueryRow(ctx, \"select 'Hello world!' as hello\").Scan(&greeting)\n if err != nil {\n return err\n }\n fmt.Printf(\"Greeting from Cloud Spanner PostgreSQL: %v\\n\", greeting)\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003eAPPLICATION_HOST\u003c/var\u003e: the hostname or IP address of the machine where PGAdapter is running. If running locally, you can use `localhost`.\n- \u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e: the port number where PGAdapter is running. Change this in the connection string if PGAdapter is running on a custom port. Otherwise, use the default port, `5432`.\n\n### Unix domain sockets\n\nThis section explains how to use Unix domain sockets to connect the\nPostgreSQL pgx driver to a PostgreSQL-dialect database. Use Unix domain sockets for the lowest\npossible latency.\n\nTo use Unix domain sockets, PGAdapter must be running on the\nsame host as the client application. \n\n connString := \"host=\u003cvar translate=\"no\"\u003e/tmp\u003c/var\u003e port=\u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e database=\u003cvar translate=\"no\"\u003eDATABASE_NAME\u003c/var\u003e\"\n ctx := context.Background()\n conn, err := pgx.Connect(ctx, connString)\n if err != nil {\n return err\n }\n defer conn.Close(ctx)\n\n var greeting string\n err = conn.QueryRow(ctx, \"select 'Hello world!' as hello\").Scan(&greeting)\n if err != nil {\n return err\n }\n fmt.Printf(\"Greeting from Cloud Spanner PostgreSQL: %v\\n\", greeting)\n\nReplace the following:\n\n- \u003cvar translate=\"no\"\u003e/tmp\u003c/var\u003e: the default domain socket directory for PGAdapter. This can be changed using the `-dir` command line argument.\n- \u003cvar translate=\"no\"\u003ePORT\u003c/var\u003e: the port number where PGAdapter is running. Change this in the connection string if PGAdapter is running on a custom port. Otherwise, use the default port, `5432`.\n\nWhat's next\n-----------\n\n- Learn more about [PGAdapter](/spanner/docs/pgadapter).\n- Learn more about [pgx Connection Options](https://github.com/GoogleCloudPlatform/pgadapter/blob/postgresql-dialect/docs/pgx.md) in the PGAdapter GitHub repository."]]