全部产品
Search
文档中心

PolarDB:Menghubungkan ke database

更新时间:Nov 11, 2025

PolarDB-X mendukung koneksi melalui Data Management (DMS), baris perintah MySQL, klien pihak ketiga, serta kode aplikasi pihak ketiga yang kompatibel dengan protokol resmi MySQL.

Persiapan

Sebelum menghubungkan ke database PolarDB-X, lakukan langkah-langkah berikut:

  • Dapatkan titik akhir dan port database

    Buka Konsol PolarDB for Distributed. Di daftar Instances, klik ID instans target untuk membuka halaman Informasi Dasar. Di bagian Connection Information, dapatkan titik akhir dan port database.

    image

    Catatan
    • Anda dapat memilih Internal Endpoint atau Public Endpoint sesuai lingkungan akses Anda.

      • Jika Anda menggunakan ECS untuk mengakses PolarDB-X dan ECS serta PolarDB-X berada dalam VPC yang sama, pilih Internal Endpoint guna memastikan kinerja optimal PolarDB-X.

      • Jika Anda mengakses PolarDB-X dari lingkungan lokal (on-premises), pilih Public Endpoint. Untuk mendapatkan titik akhir publik, klik Request Public Endpoint. Public Endpoint terhubung ke Internet, tetapi akses ke instans PolarDB-X melalui Internet tidak memberikan kinerja optimal.

    • Anda tidak dapat menggunakan Private Endpoint untuk menghubungkan host virtual atau server aplikasi sederhana ke instans PolarDB-X.

  • Buat akun database.

  • Konfigurasi daftar putih untuk instans

    Buka Konsol PolarDB for Distributed. Di daftar Instances, klik ID instans target untuk membuka halaman detail instans. Di panel navigasi sebelah kiri, pilih Configuration and Management > Security Management. Pada halaman yang muncul, klik Configure untuk mengatur daftar putih alamat IP atau klik Add Whitelist Group. Untuk informasi selengkapnya, lihat Konfigurasi daftar putih.

    image

    Catatan
    • Jika instans ECS dan PolarDB-X berada dalam VPC yang sama, tambahkan alamat IP pribadi instans ECS ke grup daftar putih IP baru untuk mengakses PolarDB-X.

    • Jika instans ECS dan PolarDB-X tidak berada dalam VPC yang sama, tambahkan alamat IP publik instans ECS ke grup daftar putih IP baru untuk mengakses PolarDB-X.

    • Jika Anda mengakses PolarDB-X dari lingkungan lokal (on-premises), tambahkan alamat IP publik lingkungan lokal Anda ke grup daftar putih alamat IP baru.

      Untuk mendapatkan alamat IP publik mesin lokal Anda, gunakan salah satu metode berikut:

      • Linux: Buka terminal dan jalankan perintah curl ifconfig.me.

      • Windows: Buka command prompt dan jalankan perintah curl ip.me.

      • macOS: Buka terminal dan jalankan perintah curl ifconfig.me.

      Jika jaringan lokal Anda menggunakan proxy, alamat IP yang diperoleh dengan metode di atas mungkin bukan alamat IP publik sebenarnya. Dalam kasus ini, tambahkan blok CIDR 0.0.0.0/0 ke daftar putih instans PolarDB-X. Setelah berhasil terhubung ke instans, jalankan perintah SHOW PROCESSLIST; untuk mendapatkan alamat IP publik sebenarnya. Kemudian, tambahkan alamat IP tersebut ke daftar putih dan hapus blok CIDR 0.0.0.0/0.

      image

    • Blok CIDR 0.0.0.0/0 mengizinkan akses dari semua sumber dan menimbulkan ancaman keamanan signifikan. Tambahkan blok CIDR ini ke daftar putih hanya jika benar-benar diperlukan.

Menghubungkan ke database

Anda dapat menggunakan berbagai metode untuk menghubungkan ke instans database. Bagian berikut memberikan contoh cara menghubungkan ke instans database menggunakan metode yang berbeda.

Gunakan DMS untuk menghubungkan ke database

DMS adalah alat manajemen data grafis yang disediakan oleh Alibaba Cloud. Layanan manajemen data terintegrasi ini menyediakan fitur-fitur seperti manajemen data, manajemen skema, otorisasi pengguna, audit keamanan, tren data, pelacakan data, grafik BI, optimasi kinerja, dan manajemen server. Anda dapat menggunakan DMS untuk mengelola instans PolarDB-X tanpa memerlukan alat tambahan.

  1. Buka Konsol PolarDB for Distributed. Di daftar Instances, klik ID instans target. Di halaman detail instans, klik Log On To Database di pojok kanan atas.

    image

  2. Pada kotak dialog, masukkan Database Account dan Database Password untuk instans PolarDB-X Anda, lalu klik Logon.

    image

    Catatan
    • Secara default, mode kontrol adalah Flexible Management saat Anda pertama kali masuk ke DMS. Anda juga dapat mengubah mode kontrol setelah masuk. Untuk informasi selengkapnya, lihat Ubah informasi instans dan Mode kontrol.

    • Setelah mengonfigurasi parameter login, klik Test Connection di pojok kiri bawah. Jika pengujian koneksi gagal, rujuk pesan kesalahan untuk memverifikasi informasi instans yang dimasukkan, seperti akun dan kata sandi.

    • Sistem secara otomatis menambahkan alamat IP server DMS ke daftar putih database ApsaraDB. Jika alamat IP tidak ditambahkan secara otomatis, Anda harus menambahkannya secara manual.

  3. Setelah berhasil masuk, Anda dapat melihat instans PolarDB-X di bagian Instances Connected pada panel navigasi sebelah kiri dan melakukan operasi manajemen.

    image

Gunakan klien untuk menghubungkan ke database

PolarDB-X mendukung koneksi dari klien pihak ketiga berikut. Anda dapat mengunduh klien-klien ini dari situs web resminya.

  • MySQL Workbench (Direkomendasikan)

  • SQLyog

  • Sequel Pro

  • Navicat for MySQL

Catatan

Klien GUI pihak ketiga dapat melakukan operasi dasar database, seperti membuat, mengambil, memperbarui, dan menghapus data, serta operasi DDL. PolarDB-X mungkin tidak mendukung fitur-fitur lanjutan dari klien-klien tersebut.

Contoh berikut menggunakan MySQL Workbench 8.0.29. Langkah-langkah untuk klien lain serupa.

  1. Instal MySQL Workbench. Anda dapat mengunduhnya dari halaman unduhan resmi.

  2. Buka MySQL Workbench dan pilih Database > Connect to Database.

  3. Masukkan informasi koneksi dan klik OK.

    连接界面

    Parameter

    Deskripsi

    Contoh

    Hostname

    Titik akhir database.

    pxc-xxx.polarx.rds.aliyuncs.com

    Port

    Nomor port yang sesuai dengan titik akhir database.

    Catatan

    Port default adalah 3306.

    3306

    Username

    Akun database.

    polardb_x_user

    Password

    Kata sandi akun database.

    Pass***233

Gunakan baris perintah MySQL untuk menghubungkan ke database

Jika klien MySQL telah diinstal di server Anda, Anda dapat menjalankan perintah untuk menghubungkan ke instans PolarDB-X.

Sintaks

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

Contoh

mysql -hpxc-xxx.polarx.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233 -Dtest_db

Parameter

Deskripsi

Contoh

-h

Titik akhir database.

pxc-xxx.polarx.rds.aliyuncs.com

-P

Nomor port yang sesuai dengan titik akhir database.

Catatan
  • Port default adalah 3306.

  • Jika Anda menggunakan port default, Anda dapat menghilangkan parameter ini.

3306

-u

Akun database.

polardb_x_user

-p

Kata sandi akun database.

Catatan

Parameter ini wajib digunakan.

  • Jika Anda tidak menyertakan parameter ini, Anda akan diminta memasukkan kata sandi setelah muncul pesan Enter password.

  • Jika Anda menyertakan parameter ini, jangan tambahkan spasi antara -p dan kata sandi.

Pass***233

-D

Nama database yang ingin Anda akses.

Catatan

Parameter ini opsional.

test_db

Gunakan aplikasi untuk menghubungkan ke database

Menghubungkan ke instans PolarDB-X mirip dengan menghubungkan ke database MySQL lainnya. Anda hanya perlu mengganti titik akhir database, port, akun, dan kata sandi. Bagian berikut menjelaskan cara menggunakan aplikasi dalam bahasa pemrograman berbeda untuk mengakses database PolarDB:

Java

Bagian ini menggunakan proyek Maven sebagai contoh untuk menjelaskan cara menggunakan driver JDBC MySQL untuk menghubungkan ke instans PolarDB-X.

  1. Tambahkan dependensi driver JDBC MySQL ke file pom.xml. Kode berikut merupakan contohnya:

    <dependency>
        <groupId>mysql</groupId>
        <artifactId>mysql-connector-java</artifactId>
        <version>8.0.27</version>
    </dependency>
  2. Hubungkan ke instans. Ganti parameter <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, <YOUR_TABLE_NAME>, dan <YOUR_TABLE_COLUMN_NAME> dengan nilai aktual Anda.

    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) {
          // Titik akhir, port, dan nama database yang ingin Anda hubungkan.
          String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC";
          // Akun database.
          String user = "<USER>";
          // Kata sandi akun database.
          String password = "<PASSWORD>";
    
          try {
             Class.forName("com.mysql.cj.jdbc.Driver");
             Connection conn = DriverManager.getConnection(url, user, password);
             Statement stmt = conn.createStatement();
             // Nama tabel dari mana Anda ingin mengambil data.
             ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`");
    
             while(rs.next()) {
                // Nama kolom dari mana Anda ingin mengambil data.
                System.out.println(rs.getString("<YOUR_TABLE_COLUMN_NAME>"));
             }
    
             rs.close();
             stmt.close();
             conn.close();
          } catch (Exception var7) {
             var7.printStackTrace();
          }
    
       }
    }

Python

Bagian ini menggunakan Python 3 sebagai contoh untuk menjelaskan cara menggunakan pustaka PyMySQL untuk menghubungkan ke instans PolarDB-X.

  1. Instal pustaka PyMySQL dengan menjalankan perintah berikut:

    pip3 install PyMySQL
  2. Hubungkan ke instans. Ganti parameter <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan nilai aktual Anda.

    import pymysql
    
    # Parameter koneksi database.
    host = '<HOST>'  # Titik akhir instans PolarDB-X.
    port = 3306  # Port default adalah 3306.
    user = '<USER>'  # Akun database.
    password = '<PASSWORD>'  # Kata sandi akun database.
    database = '<DATABASE>'  # Nama database yang ingin Anda hubungkan.
    
    try:
        # Buat koneksi database.
        connection = pymysql.connect(
            host=host,
            port=port,
            user=user,
            passwd=password,
            db=database
        )
    
        # Dapatkan kursor.
        with connection.cursor() as cursor:
            # Jalankan kueri SQL.
            sql = "SELECT * FROM `<YOUR_TABLE_NAME>`"  # Nama tabel dari mana Anda ingin mengambil data.
            cursor.execute(sql)
    
            # Dapatkan hasil kueri.
            results = cursor.fetchall()
            for row in results:
                print(row)
    
    finally:
        # Tutup koneksi database.
        if 'connection' in locals() and connection.open:
            connection.close()
    

Go

Bagian ini menggunakan Go 1.23.0 sebagai contoh untuk menjelaskan cara menggunakan paket database/sql dan driver go-sql-driver/mysql untuk menghubungkan ke instans PolarDB-X.

  1. Instal driver go-sql-driver/mysql dengan menjalankan perintah berikut:

    go get -u github.com/go-sql-driver/mysql
  2. Hubungkan ke instans. Ganti parameter <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan nilai aktual Anda.

    package main
    
    import (
        "database/sql"
        "fmt"
        "log"
        _ "github.com/go-sql-driver/mysql"
    )
    
    func main() {
        // Parameter koneksi database.
        dbHost := "<HOST>"       // Titik akhir instans PolarDB-X.
        dbPort := "3306"         // Port default adalah 3306.
        dbUser := "<USER>"       // Akun database.
        dbPass := "<PASSWORD>"   // Kata sandi akun database.
        dbName := "<DATABASE>"   // Nama database yang ingin Anda hubungkan.
    
        // Bangun Data Source Name (DSN).
        dsn := fmt.Sprintf("%s:%s@tcp(%s:%s)/%s?charset=utf8mb4&parseTime=True&loc=Local", dbUser, dbPass, dbHost, dbPort, dbName)
    
        // Buka koneksi database.
        db, err := sql.Open("mysql", dsn)
        if err != nil {
            log.Fatalf("Gagal menghubungkan ke database: %v", err)
        }
        defer db.Close()
    
        // Uji koneksi.
        err = db.Ping()
        if err != nil {
            log.Fatalf("Gagal ping database: %v", err)
        }
    
        // Kueri versi database.
        var result string
        err = db.QueryRow("SELECT VERSION()").Scan(&result)
        if err != nil {
            log.Fatalf("Gagal menjalankan kueri: %v", err)
        }
    
        // Cetak versi database.
        fmt.Printf("Terhubung ke database, versi: %s\n", result)
    
        // Jalankan kueri SQL.
        rows, err := db.Query("SELECT * FROM `<YOUR_TABLE_NAME>`") // Nama tabel dari mana Anda ingin mengambil data.
        if err != nil {
            log.Fatalf("Gagal menjalankan kueri: %v", err)
        }
        defer rows.Close()
    
        // Proses hasil kueri.
        for rows.Next() {
            var id int
            var name string
            if err := rows.Scan(&id, &name); err != nil {
                log.Fatalf("Gagal memindai baris: %v", err)
            }
            fmt.Printf("ID: %d, Nama: %s\n", id, name)
        }
    
        // Periksa kesalahan selama iterasi.
        if err := rows.Err(); err != nil {
            log.Fatalf("Kesalahan selama iterasi: %v", err)
        }
    }
    

FAQ

Apa yang harus saya lakukan jika instans ECS gagal terhubung ke instans PolarDB-X?

Lakukan langkah-langkah berikut untuk memecahkan masalah:

  1. Periksa apakah instans PolarDB-X berada dalam status Running.

  2. Periksa apakah titik akhir dan port database serta akun dan kata sandi sudah benar.

  3. Periksa konektivitas jaringan. Anda dapat menjalankan perintah ping <database endpoint> atau telnet <database endpoint> <port> pada instans ECS untuk menguji konektivitas jaringan.

  4. Jika Anda menggunakan Private Endpoint:

    1. Periksa apakah instans ECS dan instans PolarDB-X berada dalam VPC yang sama. Jika tidak berada dalam VPC yang sama, Anda tidak dapat menggunakan Private Endpoint. Anda dapat menggunakan salah satu solusi berikut untuk menempatkan instans ECS dan instans PolarDB-X dalam VPC yang sama:

      • Ganti VPC instans ECS.

      • Jika instans PolarDB-X menggunakan VPC default, Anda dapat mengganti VPC instans PolarDB-X.

      • Gunakan Cloud Enterprise Network (CEN) untuk mengaktifkan komunikasi antar-VPC. Untuk informasi selengkapnya, lihat Hubungkan VPC dalam wilayah yang sama.

    2. Periksa apakah alamat IP pribadi atau blok CIDR instans ECS telah ditambahkan ke daftar putih instans PolarDB-X. Untuk informasi selengkapnya, lihat Konfigurasi daftar putih untuk instans.

  5. Jika Anda menggunakan Public Endpoint, periksa apakah alamat IP publik instans ECS telah ditambahkan ke daftar putih instans PolarDB-X. Untuk informasi selengkapnya, lihat Konfigurasi daftar putih untuk instans.

Catatan

Anda tidak dapat menggunakan Private Endpoint untuk menghubungkan ke instans PolarDB-X dari host virtual atau server aplikasi sederhana.

Apa yang harus saya lakukan jika lingkungan lokal saya gagal terhubung ke instans PolarDB-X?

Lakukan langkah-langkah berikut untuk memecahkan masalah:

  1. Periksa apakah instans PolarDB-X berada dalam status Running.

  2. Periksa apakah titik akhir dan port database serta akun dan kata sandi sudah benar.

    Catatan

    Titik akhir database harus berupa Public Endpoint. Jika Anda menggunakan instans ECS yang berada dalam VPC yang sama dengan instans PolarDB-X, Anda dapat menggunakan Private Endpoint.

  3. Periksa konektivitas jaringan. Anda dapat menjalankan perintah ping <database endpoint> atau telnet <database endpoint> <port> di lingkungan lokal Anda untuk menguji konektivitas jaringan.

  4. Periksa apakah alamat IP publik atau blok CIDR lingkungan lokal Anda telah ditambahkan ke daftar putih instans PolarDB-X. Untuk informasi selengkapnya, lihat Konfigurasi daftar putih untuk instans.

    Untuk mendapatkan alamat IP publik mesin lokal Anda, gunakan salah satu metode berikut:

    • Linux: Buka terminal dan jalankan perintah curl ifconfig.me.

    • Windows: Buka command prompt dan jalankan perintah curl ip.me.

    • macOS: Buka terminal dan jalankan perintah curl ifconfig.me.

    Jika jaringan lokal Anda menggunakan proxy, alamat IP yang Anda peroleh dengan metode di atas mungkin bukan alamat IP publik sebenarnya. Dalam kasus ini, tambahkan blok CIDR 0.0.0.0/0 ke daftar putih instans PolarDB-X. Setelah Anda berhasil terhubung ke instans, jalankan perintah SHOW PROCESSLIST; untuk mendapatkan alamat IP publik sebenarnya. Kemudian, tambahkan alamat IP publik tersebut ke daftar putih dan hapus blok CIDR 0.0.0.0/0.

    image

Apa yang harus saya lakukan jika koneksi ke instans PolarDB-X gagal dengan kesalahan "Access denied for user 'xxx'@'xxx' (using password: YES)"?

Kesalahan ini menunjukkan bahwa akun atau kata sandi database salah. Periksa apakah Anda memasukkannya dengan benar. Anda dapat membuka Konsol PolarDB for Distributed dan memilih Configuration and Management > Account Management untuk mengelola akun dan kata sandi database.

Apa yang harus saya lakukan jika koneksi ke instans PolarDB-X gagal dengan kesalahan "Unknown MySQL server host 'xxx'"?

Kesalahan ini menunjukkan bahwa titik akhir database salah. Periksa apakah Anda memasukkannya dengan benar. Format yang benar adalah pxc-xxx.polarx.rds.aliyuncs.com. Anda dapat membuka Konsol PolarDB for Distributed dan memilih Basic Information > Connection Information untuk mengelola titik akhir database Anda.

Apa yang harus saya lakukan jika koneksi ke instans PolarDB-X gagal dengan kesalahan "Can't connect to MySQL server on 'xxx'" atau "Connection timed out"?

Masalah ini dapat terjadi karena alamat IP publik atau blok CIDR lingkungan Anda belum ditambahkan ke daftar putih instans PolarDB-X, atau alamat IP publik atau blok CIDR yang Anda masukkan tidak valid.

Untuk mendapatkan alamat IP publik mesin lokal Anda, gunakan salah satu metode berikut:

  • Linux: Buka terminal dan jalankan perintah curl ifconfig.me.

  • Windows: Buka command prompt dan jalankan perintah curl ip.me.

  • macOS: Buka terminal dan jalankan perintah curl ifconfig.me.

Jika jaringan lokal Anda menggunakan proxy, alamat IP yang Anda peroleh dengan metode di atas mungkin bukan alamat IP publik sebenarnya. Dalam kasus ini, tambahkan blok CIDR 0.0.0.0/0 ke daftar putih instans PolarDB-X. Setelah Anda berhasil terhubung ke instans, jalankan perintah SHOW PROCESSLIST; untuk mendapatkan alamat IP publik sebenarnya. Kemudian, tambahkan alamat IP publik tersebut ke daftar putih dan hapus blok CIDR 0.0.0.0/0.

image

Praktik terbaik untuk pengaturan timeout database

Jika aplikasi Anda menggunakan framework Object-Relational Mapping (ORM) umum, seperti SpringBoot, MyBatis, atau Java Database Connectivity (JDBC) Driver, untuk mengakses database, Anda dapat mengatur timeout sisi klien untuk kueri SQL pada berbagai tingkatan, seperti transaksi, pernyataan SQL, dan penerusan paket. Contohnya termasuk parameter transaction_timeout di Spring, parameter statement_timeout di MyBatis, dan parameter query_timeout di driver JDBC MySQL.

Sebagian besar mekanisme timeout sisi klien ini menjalankan pernyataan Kill untuk menghentikan kueri. Dalam database terdistribusi, pernyataan Kill sangat memakan sumber daya. Eksekusi pernyataan ini secara sering akan menghabiskan sumber daya sistem database secara signifikan. Oleh karena itu, kami menyarankan agar Anda menghindari penggunaan mekanisme timeout ini secara sering.

Sebagai praktik terbaik, gunakan parameter socket_timeout dalam URL JDBC untuk menentukan periode timeout eksekusi SQL. Parameter ini bergantung pada mekanisme timeout protokol TCP. Ketika terjadi timeout, pernyataan Kill tidak dieksekusi. Kode berikut merupakan contohnya:

<bean id="dataSource" class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
  <property name="url" value="jdbc:mysql://pxc-*****.public.polarx.rds.aliyuncs.com:3306/doc_test?socketTimeout=60000" />
  ...
  <property name="asyncInit" value="true" />
</bean>