Tous les produits
Search
Centre de documentation

ApsaraDB RDS:Accéder à une base de données ApsaraDB RDS for MySQL depuis une application

Dernière mise à jour :Aug 19, 2026

Connectez-vous à une instance ApsaraDB RDS for MySQL depuis une application Java, Python ou C en utilisant le pilote JDBC, la bibliothèque PyMySQL ou l'API MySQL C.

Prérequis

Avant de commencer, assurez-vous de disposer des éléments suivants :

  • Une instance ApsaraDB RDS for MySQL en cours d'exécution

  • Une base de données et un compte créés sur l'instance

  • L'adresse IP de votre hôte d'application ajoutée à la liste d'autorisation de l'instance

Obtenir les informations de connexion

Récupérez l'endpoint interne ou public ainsi que le port de votre instance RDS avant d'écrire le code de connexion.

  • Endpoint interne : utilisez cet endpoint lorsque votre application s'exécute sur une instance Elastic Compute Service (ECS) qui se trouve dans la même région et possède le même type de réseau que l'instance RDS.

  • Endpoint public : utilisez cet endpoint pour tous les autres scénarios, par exemple pour vous connecter depuis une machine locale ou une instance ECS située dans une autre région.

Pour plus d'informations, consultez Afficher et modifier les endpoints internes et publics ainsi que les numéros de port d'une instance ApsaraDB RDS for MySQL.

Paramètres de connexion

Les paramètres suivants apparaissent dans tous les exemples de code de cette rubrique.

Paramètre Description
<Host> L'endpoint interne ou public de l'instance RDS.
<Port> Le numéro de port correspondant au type d'endpoint : port interne pour les connexions internes, port public pour les connexions Internet.
<myDatabase> Le nom de la base de données.
<myUsername> Le nom d'utilisateur du compte utilisé pour se connecter à l'instance.
<myPassword> Le mot de passe du compte.

Se connecter avec Java

L'exemple Java utilise JDBC et le pilote mysql-connector-java pour établir une connexion et exécuter une requête SELECT sur la table courses.

Installer le pilote

Ajoutez la dépendance suivante au fichier pom.xml de votre projet Maven :

<dependency>
  <groupId>mysql</groupId>
  <artifactId>mysql-connector-java</artifactId>
  <version>8.0.27</version>
</dependency>

Exemple de code

import java.sql.Connection;
import java.sql.DriverManager;
import java.sql.ResultSet;
import java.sql.SQLException;
import java.sql.Statement;

public class DatabaseConnection {
    public static void main(String args[]) {
        // Replace the placeholders with your actual connection details
        String connectionUrl = "jdbc:mysql://<Host>:<Port>/<myDatabase>";

        ResultSet resultSet;

        try (Connection connection = DriverManager.getConnection(connectionUrl, "<myUsername>", "<myPassword>");
             Statement statement = connection.createStatement()) {

            String selectSql = "SELECT * FROM `courses`";
            resultSet = statement.executeQuery(selectSql);

            while (resultSet.next()) {
                System.out.println(resultSet.getString("name"));
            }
        } catch (SQLException e) {
            e.printStackTrace();
        }
    }
}

Sortie attendue

Si la connexion aboutit et que la table courses contient des données, la valeur de la colonne name de chaque ligne s'affiche dans la console :

Introduction to Cloud Computing
Database Fundamentals
Advanced Java Programming

Si une trace de pile SQLException s'affiche à la place, consultez la section Dépannage.

Se connecter avec Python

L'exemple Python utilise PyMySQL pour se connecter et exécuter une requête SELECT sur la table courses.

Installer PyMySQL

Exécutez la commande appropriée selon votre version de Python :

  • Python 3 : pip3 install PyMySQL

  • Python 2 : pip install pymysql==0.9.3

Exemple de code

import pymysql

connection = pymysql.connect(
    host='<Host>',
    port=<Port>,
    user='<myUsername>',
    passwd='<myPassword>',
    db='<myDatabase>'
)

try:
    with connection.cursor() as cursor:
        sql = "SELECT * FROM `courses`"
        cursor.execute(sql)
        for result in cursor:
            print(result)
except pymysql.err.OperationalError as e:
    if e.args[0] == 1045:
        print("Access denied: check your username and password.")
    elif e.args[0] == 1049:
        print("Unknown database: check the database name.")
    else:
        print(f"Connection error: {e}")
finally:
    connection.close()

Sortie attendue

Si la connexion aboutit et que la table courses contient des données, chaque ligne s'affiche sous forme de tuple :

('Introduction to Cloud Computing',)
('Database Fundamentals',)
('Advanced Java Programming',)

Se connecter avec C

L'exemple C utilise l'API MySQL C pour se connecter et exécuter une requête SELECT sur la table courses.

Installer la bibliothèque MySQL C

Sur CentOS, exécutez :

sudo yum install mysql-devel

Exemple de code

#include <stdio.h>
#include <mysql.h>
#include <string.h>

int main(void)
{
    MYSQL *t_mysql;
    MYSQL_RES *res = NULL;
    MYSQL_ROW row;
    int rc, i, fields;
    int rows;

    char select[] = "select * from courses";

    t_mysql = mysql_init(NULL);
    if (NULL == t_mysql) {
        printf("init failed\n");
        return 1;
    }

    /* Replace the placeholders with your actual connection details */
    if (NULL == mysql_real_connect(t_mysql, "<Host>", "<myUsername>", "<myPassword>",
            "<myDatabase>", <Port>, NULL, 0)) {
        printf("connect failed: %s\n", mysql_error(t_mysql));
        return 1;
    }

    if (mysql_real_query(t_mysql, select, strlen(select)) != 0) {
        printf("select failed: %s\n", mysql_error(t_mysql));
        mysql_close(t_mysql);
        return 1;
    }

    res = mysql_store_result(t_mysql);
    if (NULL == res) {
        printf("mysql_store_result(): %s\n", mysql_error(t_mysql));
        mysql_close(t_mysql);
        return 0;
    }

    fields = mysql_num_fields(res);
    while ((row = mysql_fetch_row(res))) {
        for (i = 0; i < fields; i++) {
            printf("%s\t", row[i]);
        }
        printf("\n");
    }

    mysql_free_result(res);
    mysql_close(t_mysql);
    return 0;
}

Sortie attendue

Si la connexion aboutit, chaque ligne de la table courses s'affiche avec des colonnes séparées par des tabulations :

Introduction to Cloud Computing
Database Fundamentals
Advanced Java Programming
Remarque

Le code exemple interroge une table courses à titre d'illustration. Remplacez l'instruction SQL et le nom de la table par des requêtes correspondant à votre schéma de base de données réel.

Dépannage

Si la connexion échoue, vérifiez le message d'erreur renvoyé par le pilote ou la bibliothèque. Les causes courantes incluent :

  • Endpoint ou port incorrect — vérifiez les valeurs obtenues dans la section Obtenir les informations de connexion

  • Nom d'utilisateur ou mot de passe incorrect — revérifiez les identifiants du compte

  • Adresse IP non ajoutée à la liste d'autorisation — ajoutez l'IP de l'hôte de l'application à la liste d'autorisation de l'instance

  • Endpoint public non activé — activez l'endpoint public dans la console si vous vous connectez depuis l'extérieur du VPC

Pour un guide de dépannage complet, consultez Résoudre le problème d'impossibilité de connexion à une instance RDS.

Étapes suivantes

  • Pour vous connecter depuis une fonction serverless, configurez l'accès VPC pour votre fonction et ajoutez l'IP de la fonction à la liste d'autorisation RDS. Consultez Accéder à une base de données ApsaraDB RDS for MySQL dans la documentation Function Compute.

  • Pour plus d'exemples de connexion Python, consultez le dépôt start-fc-db sur GitHub.