Cette page explique comment connecter le pilote pgx PostgreSQL à une base de données avec dialecte PostgreSQL dans Spanner. pgx
est un pilote Golang pour PostgreSQL.
Vérifiez que PGAdapter s'exécute sur la même machine que l'application qui se connecte à l'aide du pilote pgx PostgreSQL.
Pour en savoir plus, consultez Démarrer PGAdapter.
pgx
requiert un nom d'utilisateur et un mot de passe dans la chaîne de connexion. PGAdapter les ignore.- Par défaut, PGAdapter désactive SSL. Par défaut,
pgx
tente d'abord de se connecter avec SSL activé. La désactivation de SSL dans la demande de connexion accélère le processus de connexion, car elle nécessite un aller-retour en moins.
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)
Remplacez les éléments suivants :
- APPLICATION_HOST : nom d'hôte ou adresse IP de la machine sur laquelle PGAdapter est exécuté. Si vous exécutez le code en local, vous pouvez utiliser
localhost
. - PORT : numéro de port sur lequel PGAdapter est exécuté. Modifiez-le dans la chaîne de connexion si PGAdapter s'exécute sur un port personnalisé. Sinon, utilisez le port par défaut,
5432
.
Sockets de domaine Unix
Cette section explique comment utiliser les sockets de domaine Unix pour connecter le pilote pgx PostgreSQL à une base de données de dialecte PostgreSQL. Utilisez des sockets de domaine Unix pour obtenir la latence la plus faible possible.
Pour utiliser des sockets de domaine Unix, PGAdapter doit s'exécuter sur le même hôte que l'application cliente.
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)
Remplacez les éléments suivants :
- /tmp : répertoire de socket de domaine par défaut pour PGAdapter. Vous pouvez le modifier à l'aide de l'argument de ligne de commande
-dir
. - PORT : numéro de port sur lequel PGAdapter est exécuté. Modifiez-le dans la chaîne de connexion si PGAdapter s'exécute sur un port personnalisé. Sinon, utilisez le port par défaut,
5432
.
Étapes suivantes
- En savoir plus sur PGAdapter.
- Pour en savoir plus sur les options de connexion pgx, consultez le dépôt GitHub PGAdapter.