All Products
Search
Document Center

ApsaraDB RDS:Mengakses database ApsaraDB RDS for MySQL dari aplikasi

Last Updated:Mar 28, 2026

Hubungkan ke instans ApsaraDB RDS for MySQL dari aplikasi Java, Python, atau C menggunakan driver JDBC, pustaka PyMySQL, atau MySQL C API.

Prasyarat

Sebelum memulai, pastikan Anda telah:

  • Memiliki instans ApsaraDB RDS for MySQL yang sedang berjalan.

  • Sebuah database dan akun yang dibuat pada Instans

  • Menambahkan alamat IP host aplikasi Anda ke daftar putih instans.

Peroleh informasi koneksi

Ambil Titik akhir internal atau publik beserta Port instans RDS Anda sebelum menulis kode koneksi.

  • Titik akhir internal: Gunakan ini jika aplikasi Anda berjalan di instans Elastic Compute Service (ECS) yang berada di wilayah yang sama dan memiliki jenis jaringan yang sama dengan instans RDS.

  • Titik akhir publik: Gunakan ini untuk semua skenario lainnya, seperti menghubungkan dari mesin lokal atau instans ECS di wilayah berbeda.

Untuk informasi lebih lanjut, lihat Melihat dan mengubah Titik akhir internal dan publik serta nomor Port instans ApsaraDB RDS for MySQL.

Parameter koneksi

Parameter berikut muncul dalam semua contoh kode pada topik ini.

ParameterDeskripsi
<Host>Titik akhir internal atau publik instans RDS.
<Port>Nomor port yang sesuai dengan jenis titik akhir: port internal untuk koneksi internal, port publik untuk koneksi Internet.
<myDatabase>Nama database.
<myUsername>Username akun yang digunakan untuk menghubungkan ke instans.
<myPassword>Password akun tersebut.

Koneksi menggunakan Java

Contoh Java menggunakan JDBC dan driver mysql-connector-java untuk membuka koneksi dan menjalankan kueri SELECT terhadap tabel courses.

Instal driver

Tambahkan dependensi berikut ke file pom.xml dalam proyek Maven Anda:

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

Kode contoh

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[]) {
        // Ganti placeholder dengan detail koneksi aktual Anda
        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();
        }
    }
}

Output yang diharapkan

Jika koneksi berhasil dan tabel courses berisi data, nilai kolom name setiap baris akan dicetak ke konsol:

Introduction to Cloud Computing
Database Fundamentals
Advanced Java Programming

Jika Anda melihat jejak stack SQLException sebagai gantinya, lihat bagian Troubleshooting.

Koneksi menggunakan Python

Contoh Python menggunakan PyMySQL untuk menghubungkan dan menjalankan kueri SELECT terhadap tabel courses.

Instal PyMySQL

Jalankan perintah yang sesuai dengan versi Python Anda:

  • Python 3: pip3 install PyMySQL

  • Python 2: pip install pymysql==0.9.3

Kode contoh

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("Akses ditolak: periksa username dan password Anda.")
    elif e.args[0] == 1049:
        print("Database tidak dikenal: periksa nama database.")
    else:
        print(f"Kesalahan koneksi: {e}")
finally:
    connection.close()

Output yang diharapkan

Jika koneksi berhasil dan tabel courses berisi data, setiap baris akan dicetak sebagai Tupel:

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

Koneksi menggunakan C

Contoh C menggunakan MySQL C API untuk menghubungkan dan menjalankan kueri SELECT terhadap tabel courses.

Instal pustaka MySQL C

Pada CentOS, jalankan:

sudo yum install mysql-devel

Kode contoh

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

    /* Ganti placeholder dengan detail koneksi aktual Anda */
    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;
}

Output yang diharapkan

Jika koneksi berhasil, setiap baris dari tabel courses akan dicetak dengan kolom yang dipisahkan tab:

Introduction to Cloud Computing
Database Fundamentals
Advanced Java Programming
Catatan

Kode contoh melakukan kueri terhadap tabel courses sebagai contoh. Ganti pernyataan SQL dan nama tabel dengan kueri yang sesuai dengan skema database aktual Anda.

Troubleshooting

Jika koneksi gagal, periksa pesan kesalahan yang dikembalikan oleh driver atau pustaka. Penyebab umum meliputi:

  • Titik akhir atau Port salah — verifikasi nilainya dari bagian Peroleh informasi koneksi.

  • Username atau password salah — periksa kembali kredensial akun.

  • Alamat IP belum ditambahkan ke daftar putih — tambahkan IP host aplikasi ke daftar putih instans.

  • Titik akhir publik belum diaktifkan — aktifkan Titik akhir publik di Konsol jika menghubungkan dari luar VPC.

Untuk panduan troubleshooting lengkap, lihat Mengatasi masalah ketika Anda tidak dapat menghubungkan ke instans RDS.

Langkah selanjutnya

  • Untuk menghubungkan dari fungsi serverless, konfigurasikan akses VPC untuk fungsi Anda dan tambahkan IP fungsi tersebut ke daftar putih RDS. Lihat Mengakses database ApsaraDB RDS for MySQL dalam dokumentasi Function Compute.

  • Untuk contoh koneksi Python lainnya, lihat repositori start-fc-db di GitHub.