Tetap teratur dengan koleksi
Simpan dan kategorikan konten berdasarkan preferensi Anda.
Halaman ini menjelaskan cara menghubungkan driver pgx PostgreSQL ke database dialek PostgreSQL di Spanner. pgx adalah driver Golang untuk PostgreSQL.
Pastikan PGAdapter berjalan di mesin yang sama dengan aplikasi yang terhubung menggunakan driver pgx PostgreSQL.
Untuk mengetahui informasi selengkapnya, lihat Mulai PGAdapter.
pgx memerlukan nama pengguna dan sandi dalam string koneksi.
PGAdapter mengabaikannya.
Secara default, PGAdapter menonaktifkan SSL. pgx secara default pertama-tama
mencoba terhubung dengan SSL yang diaktifkan. Menonaktifkan SSL dalam permintaan
koneksi akan mempercepat proses koneksi, karena hanya memerlukan satu perjalanan
pulang pergi.
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)
Ganti kode berikut:
APPLICATION_HOST: nama host atau alamat IP
mesin tempat PGAdapter berjalan. Jika menjalankan secara lokal, Anda dapat menggunakan localhost.
PORT: nomor port tempat PGAdapter
berjalan. Ubah ini di string koneksi jika PGAdapter berjalan di port kustom. Jika tidak, gunakan port default, 5432.
Soket domain Unix
Bagian ini menjelaskan cara menggunakan soket domain Unix untuk menghubungkan driver pgx PostgreSQL ke database dialek PostgreSQL. Gunakan soket domain Unix untuk latensi
serendah mungkin.
Untuk menggunakan soket domain Unix, PGAdapter harus berjalan di host yang sama dengan aplikasi klien.
connString:="host=/tmp port=PORT database=DATABASE_NAME"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)
Ganti kode berikut:
/tmp: direktori soket domain default untuk
PGAdapter. Setelan ini dapat diubah menggunakan argumen command line -dir.
PORT: nomor port tempat PGAdapter
berjalan. Ubah ini di string koneksi jika PGAdapter berjalan di port kustom. Jika tidak, gunakan port default, 5432.
[[["Mudah dipahami","easyToUnderstand","thumb-up"],["Memecahkan masalah saya","solvedMyProblem","thumb-up"],["Lainnya","otherUp","thumb-up"]],[["Sulit dipahami","hardToUnderstand","thumb-down"],["Informasi atau kode contoh salah","incorrectInformationOrSampleCode","thumb-down"],["Informasi/contoh yang saya butuhkan tidak ada","missingTheInformationSamplesINeed","thumb-down"],["Masalah terjemahan","translationIssue","thumb-down"],["Lainnya","otherDown","thumb-down"]],["Terakhir diperbarui pada 2025-08-11 UTC."],[],[],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."]]