Todos os produtos
Search
Central de documentação

ApsaraDB RDS:Access an ApsaraDB RDS for MySQL database from an application

Última atualização: Jun 26, 2026

Conecte-se a uma instância do ApsaraDB RDS for MySQL a partir de uma aplicação Java, Python ou C usando o driver JDBC, a biblioteca PyMySQL ou a API MySQL C.

Pré-requisitos

Antes de começar, verifique se você tem:

  • Uma instância do ApsaraDB RDS for MySQL em execução

  • Um banco de dados e uma conta criados na instância

  • O endereço IP do host da aplicação adicionado à lista de permissões da instância

Obtenha as informações de conexão

Obtenha o endpoint interno ou público e a porta da instância RDS antes de escrever o código de conexão.

  • Endpoint interno: use quando a aplicação for executada em uma instância do Elastic Compute Service (ECS) na mesma região e com o mesmo tipo de rede da instância RDS.

  • Endpoint público: use em todos os outros cenários, como conexões a partir de uma máquina local ou de uma instância ECS em outra região.

Para mais informações, consulte Visualizar e alterar os endpoints internos e públicos e os números de porta de uma instância do ApsaraDB RDS for MySQL.

Parâmetros de conexão

Os parâmetros a seguir aparecem em todos os códigos de exemplo deste tópico.

Parâmetro

Descrição

<Host>

Endpoint interno ou público da instância RDS.

<Port>

Número da porta correspondente ao tipo de endpoint: porta interna para conexões internas; porta pública para conexões via Internet.

<myDatabase>

Nome do banco de dados.

<myUsername>

Nome de usuário da conta usada para conectar-se à instância.

<myPassword>

Senha da conta.

Conexão usando Java

O exemplo em Java usa JDBC e o driver mysql-connector-java para abrir uma conexão e executar uma consulta SELECT na tabela courses.

Instale o driver

Adicione a seguinte dependência ao arquivo pom.xml do projeto Maven:

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

Código de exemplo

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();
        }
    }
}

Saída esperada

Se a conexão for bem-sucedida e a tabela courses contiver dados, o valor da coluna name de cada linha será impresso no console:

Introduction to Cloud Computing
Database Fundamentals
Advanced Java Programming

Caso apareça um rastreamento de pilha de SQLException, consulte Solução de problemas.

Conexão usando Python

O exemplo em Python usa PyMySQL para estabelecer a conexão e executar uma consulta SELECT na tabela courses.

Instale o PyMySQL

Execute o comando apropriado para a versão do Python:

  • Python 3: pip3 install PyMySQL

  • Python 2: pip install pymysql==0.9.3

Código de exemplo

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()

Saída esperada

Se a conexão for bem-sucedida e a tabela courses contiver dados, cada linha será impressa como uma tupla:

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

Conexão usando C

O exemplo em C usa a API MySQL C para conectar-se e executar uma consulta SELECT na tabela courses.

Instale a biblioteca MySQL C

No CentOS, execute:

sudo yum install mysql-devel

Código de exemplo

#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;
}

Saída esperada

Se a conexão for bem-sucedida, cada linha da tabela courses será exibida com colunas separadas por tabulação:

Introduction to Cloud Computing
Database Fundamentals
Advanced Java Programming
Nota

O código de exemplo consulta uma tabela de cursos apenas como ilustração. Substitua a instrução SQL e o nome da tabela por consultas compatíveis com o esquema real do banco de dados.

Solução de problemas

Se a conexão falhar, verifique a mensagem de erro retornada pelo driver ou pela biblioteca. As causas mais frequentes incluem:

  • Endpoint ou porta incorretos: valide os valores conforme descrito em Obtenha as informações de conexão

  • Nome de usuário ou senha inválidos: revise as credenciais da conta

  • Endereço IP ausente na lista de permissões: adicione o IP do host da aplicação à lista de permissões da instância

  • Endpoint público desativado: ative o endpoint público no console caso a conexão seja externa à VPC

Para um guia completo de solução de problemas, acesse Resolver o problema de impossibilidade de conexão com uma instância RDS.

Próximos passos

  • Para conectar-se a partir de uma função serverless, configure o acesso à VPC e adicione o IP da função à lista de permissões do RDS. Consulte Acessar um banco de dados ApsaraDB RDS for MySQL na documentação do Function Compute.

  • Para mais exemplos de conexão em Python, visite o repositório start-fc-db no GitHub.