Tous les produits
Search
Centre de documentation

PolarDB:Connect to a Global Database Network

Dernière mise à jour :Oct 10, 2026

Un Global Database Network (GDN) est un réseau composé de plusieurs clusters PolarDB déployés dans différentes régions. Cette rubrique explique comment consulter les points de terminaison de cluster d'un GDN et s'y connecter.

Répartition lecture/écriture et routage des requêtes

La configuration du proxy de base de données de chaque cluster détermine le routage des requêtes de lecture et d'écriture vers les clusters (primaires et secondaires) d'un GDN. Vous n'avez pas besoin de modifier le code de votre application. Il vous suffit de vous connecter à l'adresse du cluster concerné ; les requêtes de lecture et d'écriture sont alors automatiquement routées selon la logique suivante :

  • Le proxy de base de données transfère automatiquement vers le nœud primaire du cluster primaire les requêtes d'écriture, telles que les instructions INSERT, UPDATE et DELETE, ainsi que les autres syntaxes de diffusion comme les instructions SET et toutes les requêtes effectuées au sein de transactions.

  • Par défaut, le proxy de base de données dirige les requêtes de lecture vers les nœuds en lecture seule du cluster secondaire local pour un accès local. Si la cohérence de session est activée, certaines requêtes de lecture peuvent également être routées vers le nœud primaire du cluster primaire afin de garantir la cohérence des données.

Remarque

Lorsqu'une application se connecte au point de terminaison de cluster d'un cluster secondaire, les mêmes règles de routage s'appliquent. Une fois la connexion établie entre le client et le proxy de base de données, celui-ci crée et maintient des connexions backend depuis le cluster secondaire vers le nœud primaire du cluster primaire. Le caractère préétabli de ces connexions dépend de la configuration du proxy de base de données. Le lien entre un cluster secondaire et le nœud primaire est souvent une connexion inter-régions. Pour les applications utilisant des connexions éphémères, la création fréquente de ces connexions inter-régions peut dégrader les performances en raison des fluctuations du réseau. Dans ce scénario, nous vous recommandons d'activer l'option On-demand Connections pour le proxy de base de données du cluster secondaire. Pour plus d'informations, consultez Configurer un proxy de base de données.

De plus, le GDN fournit un nom de domaine global, qui permet non seulement un accès à partir de l'emplacement le plus proche, mais reste également inchangé après un basculement du cluster primaire.

Logique de routage détaillée

Nœud de destination

Requêtes transférées

Transférées uniquement vers le nœud primaire du cluster primaire

  • Toutes les opérations DML, telles que INSERT, UPDATE, DELETE et SELECT FOR UPDATE.

  • Toutes les opérations DDL, telles que la création, la suppression ou la modification de tables ou de bases de données, ainsi que la gestion des autorisations.

  • Toutes les requêtes effectuées au sein de transactions.

  • Fonctions définies par l'utilisateur.

  • Procédures stockées.

  • Instructions EXECUTE.

  • Multi Statements.

  • Requêtes utilisant des tables temporaires.

  • SELECT last_insert_id().

  • Toutes les interrogations et modifications des variables utilisateur.

  • SHOW PROCESSLIST.

  • KILL (l'instruction SQL KILL, et non la commande KILL).

Transférées vers les nœuds en lecture seule ou le nœud primaire

Remarque

Les requêtes sont envoyées au nœud primaire uniquement si l'option Primary Node Accepts Read Requests est définie sur Yes dans la configuration du proxy de base de données.

  • Requêtes de lecture en dehors des transactions.

  • Commandes COM_STMT_EXECUTE.

Toujours transférées vers tous les nœuds

  • Toutes les modifications des variables système.

  • Commandes USE.

  • Commandes COM_STMT_PREPARE.

  • Commandes telles que COM_CHANGE_USER, COM_QUIT et COM_SET_OPTION.

Remarque

Le nœud primaire d'un cluster secondaire sert uniquement à la réplication interne et ne traite pas le trafic de lecture ou d'écriture. Par conséquent, dans ce tableau, le terme « nœud primaire » fait référence au nœud primaire du cluster primaire, tandis que les « nœuds en lecture seule » désignent les nœuds en lecture seule des clusters secondaires.

Remarque
  • Seuls les points de terminaison de cluster ou les points de terminaison personnalisés dont le Read-write mode est défini sur Read/Write (Automatic Read/Write Splitting) prennent en charge le service de répartition lecture/écriture du GDN.

  • L'Primary address et les points de terminaison personnalisés dont le Read-write mode est défini sur Read-Only ne prennent pas en charge le service de répartition lecture/écriture du GDN.

  • Lorsque vous configurez un point de terminaison de cluster personnalisé sur un cluster secondaire, définissez Primary Node Accepts Read Requests sur No et le Consistency Level sur Eventual Consistency (Weak). Ces paramètres réduisent l'impact potentiel du décalage de réplication entre les clusters primaires et secondaires sur votre activité.

  • Si votre activité ne peut pas tolérer le décalage de réplication d'un cluster secondaire, connectez-vous directement au point de terminaison de cluster du cluster primaire.

Afficher les points de terminaison de cluster

  1. Connectez-vous à la console PolarDB. Dans le volet de navigation de gauche, cliquez sur Global Database Network (GDN).

  2. Sur la page Global Database Network (GDN), repérez le GDN cible et cliquez sur son GDN ID/Name pour ouvrir la page des détails du GDN.

  3. Dans la section Clusters, repérez le cluster secondaire cible. Dans la colonne Cluster Endpoint, cliquez sur View. La boîte de dialogue qui s'affiche présente les détails du point de terminaison de cluster.

    Remarque
    • Vous pouvez uniquement afficher les informations de point de terminaison du cluster par défaut, y compris les points de terminaison Private et Public.

    • Pour plus de détails sur les points de terminaison, cliquez sur Visit the Overview page of the cluster. Vous êtes redirigé vers la page des détails du cluster cible, où vous pouvez consulter davantage de points de terminaison dans la section Database Connections.

Se connecter à un cluster GDN

Les applications de chaque région peuvent se connecter directement au point de terminaison de cluster le plus proche pour accéder au GDN, qui effectue automatiquement la répartition lecture/écriture. Il existe plusieurs façons de se connecter à un cluster de base de données. Choisissez la méthode adaptée à vos besoins métier. Voici quelques exemples de connexion à un cluster de base de données :

Utiliser DMS pour se connecter au cluster

DMS est un service graphique de gestion des données proposé par Alibaba Cloud. Vous pouvez gérer votre cluster PolarDB directement dans DMS sans installer d'outils supplémentaires.

  1. Accédez à la console PolarDB. Dans la liste Cluster List, cliquez sur l'ID du cluster cible pour accéder à la page des détails du cluster. Dans le coin supérieur droit de la page, cliquez sur Log on to Database.image

  2. Saisissez votre database account et votre database password pour le cluster PolarDB for MySQL, puis cliquez sur Log on.image

  3. Une fois connecté, repérez le cluster PolarDB for MySQL dans la liste Logged-in Instances du volet de navigation de gauche.image

Utiliser un client pour se connecter au cluster

Vous pouvez utiliser n'importe quel client compatible MySQL pour vous connecter à un cluster PolarDB. L'exemple suivant utilise MySQL Workbench 8.0.29.

  1. Téléchargez et installez MySQL Workbench.

  2. Ouvrez MySQL Workbench et sélectionnez Database > Connect to Database.

  3. Saisissez les informations de connexion et cliquez sur OK.

    Connection dialog

    Paramètre

    Description

    Exemple

    Hostname

    Le point de terminaison de base de données.

    pc-2***.rwlb.rds.aliyuncs.com

    Port

    Le numéro de port du point de terminaison de base de données.

    Remarque

    Le port par défaut est 3306.

    3306

    Username

    Le compte de base de données.

    polardb_mysql_user

    Password

    Le mot de passe du compte de base de données.

    Pass***233

Utiliser la ligne de commande pour se connecter au cluster

Si un client MySQL est installé sur votre serveur, exécutez la commande suivante pour vous connecter au cluster PolarDB for MySQL.

Syntaxe :

mysql -h<endpoint> -P<port> -u<database_username> -p<database_user_password>

Exemple :

mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233

Paramètre

Description

Exemple

-h

Le point de terminaison de base de données.

pc-2***.rwlb.rds.aliyuncs.com

-P

Le numéro de port du point de terminaison de base de données.

Remarque
  • Le port par défaut est 3306.

  • Si le port est le port par défaut, vous pouvez omettre ce paramètre.

3306

-u

Le compte de base de données.

polardb_mysql_user

-p

Le mot de passe du compte de base de données.

Remarque

Ce paramètre est obligatoire.

  • Si vous omettez ce paramètre, vous serez invité à saisir le mot de passe après l'affichage de Enter password.

  • Si vous incluez ce paramètre, n'ajoutez pas d'espace entre -p et le mot de passe.

Pass***233

Utiliser une application pour se connecter au cluster

La connexion à un cluster PolarDB for MySQL est identique à la connexion à n'importe quelle base de données MySQL. Remplacez le point de terminaison, le port, le compte et le mot de passe par les valeurs de votre cluster PolarDB. Exemples par langage :

Java

Utilisez le pilote JDBC MySQL dans un projet Maven pour vous connecter à un cluster PolarDB for MySQL.

  1. Ajoutez la dépendance du pilote JDBC MySQL à votre fichier pom.xml :

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
    </dependency>
  2. Connectez-vous au cluster. Remplacez <HOST>, <USER>, <PASSWORD>, <DATABASE>, <YOUR_TABLE_NAME> et <YOUR_TABLE_COLUMN_NAME> par vos valeurs réelles.

    import java.sql.Connection;
    import java.sql.DriverManager;
    import java.sql.ResultSet;
    import java.sql.Statement;
    
    public class DatabaseConnection {
       public DatabaseConnection() {
       }
    
       public static void main(String[] args) {
          // The endpoint, port, and name of the database to connect to.
          String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC";
          // The database account.
          String user = "<USER>";
          // The password of the database account.
          String password = "<PASSWORD>";
    
          try {
             Class.forName("com.mysql.cj.jdbc.Driver");
             Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement();
             // The name of the data table to retrieve.
             ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`");
    
             while(rs.next()) {
                // The name of the column in the data table to retrieve.
                System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>"));
             }
    
             rs.close();
             stmt.close();
             conn.close();
          } catch (Exception var7) {
             var7.printStackTrace();
          }
    
       }
    }

Python

Utilisez la bibliothèque PyMySQL avec Python 3 pour vous connecter à un cluster PolarDB for MySQL.

  1. Installez la bibliothèque PyMySQL :

    pip3 install PyMySQL
  2. Connectez-vous au cluster. Remplacez <HOST>, <USER>, <PASSWORD>, <DATABASE> et <YOUR_TABLE_NAME> par vos valeurs réelles.

    import pymysql
    
    # Database connection parameters
    host = '<HOST>'  # The endpoint of the PolarDB cluster
    port = 3306  # The default port is 3306
    user = '<USER>'  # The database account
    password = '<PASSWORD>'  # The password of the database account
    database = '<DATABASE>'  # The name of the database to connect to
    
    try:
        # Create a database connection
        connection = pymysql.connect(
            host=host,
            port=port,
            user=user,
            passwd=password,
            db=database
        )
    
        # Get the cursor
        with connection.cursor() as cursor:
            # Execute an SQL query
            sql = "SELECT * FROM `<YOUR_TABLE_NAME>`"  # The name of the data table to retrieve
            cursor.execute(sql)
    
            # Get the query results
            results = cursor.fetchall()
            for row in results:
                print(row)
    
    finally:
        # Close the database connection
        if 'connection' in locals() and connection.open:
            connection.close()
    

Go

Utilisez le package database/sql et le pilote go-sql-driver/mysql (Go 1.23.0) pour vous connecter à un cluster PolarDB for MySQL.

  1. Installez le pilote go-sql-driver/mysql :

    go get -u github.com/go-sql-driver/mysql
  2. Connectez-vous au cluster. Remplacez <HOST>, <USER>, <PASSWORD>, <DATABASE> et <YOUR_TABLE_NAME> par vos valeurs réelles.

    package main
    
    import (
        "database/sql"
        "fmt"
        "log"
        _ "github.com/go-sql-driver/mysql"
    )
    
    func main() {
        // Database connection parameters
        dbHost := "<HOST>"       // The endpoint of the PolarDB cluster
        dbPort := "3306"         // The default port is 3306
        dbUser := "<USER>"       // The database account
        dbPass := "<PASSWORD>"   // The password of the database account
        dbName := "<DATABASE>"   // The name of the database to connect to
    
        // Build the Data Source Name (DSN)
        dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName)
    
        // Open a database connection
        db, err := sql.Open("mysql", dsn)
        if err != nil {
            log.Fatalf("Failed to connect to database: %v", err)
        }
        defer db.Close()
    
        // Test the connection
        err = db.Ping()
        if err != nil {
            log.Fatalf("Failed to ping database: %v", err)
        }
    
        // Create a cursor
        var result string
        err = db.QueryRow("SELECT VERSION()").Scan(&result)
        if err != nil {
            log.Fatalf("Failed to execute query: %v", err)
        }
    
        // Print the database version
        fmt.Printf("Connected to database, version: %s\n", result)
    
        // Execute an SQL query
        rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // The name of the data table to retrieve
        if err != nil {
            log.Fatalf("Failed to execute query: %v", err)
        }
        defer rows.Close()
    }

Documentation connexe

Référence API

API

Description

DescribeDBClusterEndpoints

Interroge les informations relatives aux points de terminaison de cluster d'un cluster PolarDB.

ModifyDBClusterEndpoint

Modifie les attributs d'un point de terminaison de cluster PolarDB. Les attributs incluent le mode lecture/écriture, l'ajout automatique de nouveaux nœuds au point de terminaison, le niveau de cohérence, la division des transactions, l'acceptation des requêtes de lecture par le nœud primaire et le pool de connexions.