Persiapan
Sebelum menghubungkan ke kluster database, selesaikan tugas-tugas berikut:
Dapatkan titik akhir database dan port
Buka PolarDB console. Di Cluster List, klik ID kluster target untuk membuka halaman detail kluster. Di bagian Database Connection, dapatkan titik akhir database (titik akhir utama, titik akhir kluster, dan titik akhir kustom).
Catatan Gunakan cluster endpoint. Port default adalah 3306.
Pilih private network atau public network sesuai lingkungan akses Anda.
Jika Anda menggunakan instance ECS untuk mengakses PolarDB dan instance ECS serta kluster PolarDB berada dalam VPC yang sama, pilih private network.
Jika Anda mengakses PolarDB dari lingkungan on-premises, pilih public network. Untuk mendapatkan titik akhir publik, klik Request di sebelah kanan.
public network adalah Internet. Mengakses kluster melalui public network mungkin tidak memberikan performa optimal untuk kluster PolarDB Anda.
Menghubungkan ke kluster PolarDB dari virtual host atau server aplikasi sederhana menggunakan titik akhir private network tidak didukung.
Buat akun database
Buka PolarDB console. Di Cluster List, klik ID kluster target untuk membuka halaman detail kluster. Di halaman , buat akun database.
Catatan Akun database dikategorikan menjadi privileged accounts dan standard accounts. Kedua jenis akun ini memiliki izin yang berbeda. Buat akun database sesuai kebutuhan.
Konfigurasikan daftar putih kluster
Buka PolarDB console. Di Cluster List, klik ID kluster target untuk membuka halaman detail kluster. Di halaman , tambahkan IP whitelist atau security group.

Catatan Jika Anda menggunakan instance ECS untuk mengakses PolarDB dan instance ECS serta kluster PolarDB berada dalam VPC yang sama, Anda dapat menambahkan alamat IP pribadi instance ECS ke grup daftar putih IP baru, atau menambahkan security group instance ECS ke daftar putih kluster.
Jika Anda menggunakan instance ECS untuk mengakses PolarDB, tetapi instance ECS dan kluster PolarDB tidak berada dalam VPC yang sama, Anda dapat menambahkan alamat IP publik instance ECS ke grup daftar putih IP baru, atau menambahkan security group instance ECS ke daftar putih kluster.
Jika Anda mengakses PolarDB dari lingkungan on-premises, tambahkan alamat IP publik lingkungan on-premises Anda ke grup daftar putih IP baru.
Anda dapat memperoleh alamat IP publik lingkungan on-premises Anda sebagai berikut:
Sistem operasi Linux: Buka terminal dan jalankan perintah curl ifconfig.me.
Sistem operasi Windows: Buka command prompt dan jalankan perintah curl ip.me.
Sistem operasi macOS: Buka terminal dan jalankan perintah curl ifconfig.me.
Jika lingkungan jaringan on-premises Anda menggunakan server proxy atau konfigurasi serupa lainnya, alamat IP yang diperoleh dengan metode di atas mungkin bukan alamat IP publik asli Anda. Anda dapat menambahkan rentang alamat IP 0.0.0.0/0 ke daftar putih kluster PolarDB. Setelah berhasil terhubung ke kluster, jalankan perintah SHOW PROCESSLIST; untuk memperoleh alamat IP publik asli dan tambahkan ke daftar putih kluster. Kemudian, hapus rentang alamat IP 0.0.0.0/0 dari daftar putih.

Rentang alamat IP 0.0.0.0/0 mengizinkan akses dari semua sumber, yang menimbulkan ancaman keamanan signifikan. Jangan tambahkan ke daftar putih kecuali benar-benar diperlukan.
Setelah menyelesaikan persiapan, hubungkan ke kluster database.
Menghubungkan ke kluster database
Anda dapat menghubungkan ke kluster database dengan beberapa cara. Pilih metode yang sesuai dengan kebutuhan Anda. Bagian berikut menyediakan contoh:
Gunakan DMS untuk menghubungkan ke kluster
DMS adalah tool manajemen data grafis dari Alibaba Cloud. DMS mengintegrasikan manajemen data, manajemen struktur, otorisasi pengguna, audit keamanan, analisis tren data, pelacakan data, grafik BI, optimasi performa, dan manajemen server. Anda dapat mengelola kluster PolarDB secara langsung di DMS tanpa tool lain.
Buka PolarDB console. Di Cluster List, klik ID kluster target untuk membuka halaman detail kluster. Di pojok kanan atas halaman, klik Log on to Database.
Di kotak dialog yang muncul, masukkan database account dan database password yang telah Anda buat di kluster PolarDB for MySQL, lalu klik Log on.
Setelah login, Anda dapat menemukan kluster PolarDB for MySQL yang telah login di daftar Logged-in Instances pada panel navigasi kiri dan melakukan operasi manajemen.
Gunakan client untuk menghubungkan ke kluster
Anda dapat menggunakan client umum apa pun untuk menghubungkan ke kluster PolarDB. Bagian ini menggunakan MySQL Workbench 8.0.29 sebagai contoh. Prosedur untuk client lain serupa.
Instal MySQL Workbench. Untuk tautan unduhan resmi, lihat halaman unduhan MySQL Workbench.
Buka MySQL Workbench dan pilih .
Masukkan informasi koneksi dan klik OK.

Parameter | Deskripsi | Contoh |
Hostname | Titik akhir database. | pc-2***.rwlb.rds.aliyuncs.com |
Port | Nomor port titik akhir database.
Catatan Port default adalah 3306. | 3306 |
Username | Akun database. | polardb_mysql_user |
Password | Password akun database. | Pass***233 |
Gunakan command line untuk menghubungkan ke kluster
Jika client MySQL telah diinstal pada server Anda, Anda dapat menggunakan command line untuk menghubungkan ke kluster database PolarDB for MySQL.
Sintaks:
mysql -h<endpoint> -P<port> -u<database_username> -p<database_user_password>
Contoh:
mysql -h pc-2***.rwlb.rds.aliyuncs.com -P3306 -upolardb_mysql_user -pPass***233
Parameter | Deskripsi | Contoh |
-h | Titik akhir database. | pc-2***.rwlb.rds.aliyuncs.com |
-P | Nomor port titik akhir database. | 3306 |
-u | Akun database. | polardb_mysql_user |
-p | Password akun database.
Catatan Parameter ini wajib digunakan. Jika Anda menghilangkan parameter ini, Anda akan diminta memasukkan password setelah Enter password. Jika Anda menyertakan parameter ini, jangan tambahkan spasi antara -p dan password.
| Pass***233 |
Gunakan aplikasi untuk menghubungkan ke kluster
Metode untuk menghubungkan ke kluster PolarDB for MySQL sama seperti menghubungkan ke database MySQL lainnya. Anda hanya perlu mengganti titik akhir database, port, akun, dan password. Bagian berikut menyediakan contoh cara mengakses database PolarDB dari aplikasi menggunakan berbagai bahasa pemrograman:
Java
Bagian ini menggunakan proyek Maven sebagai contoh untuk menunjukkan cara menggunakan driver MySQL Java Database Connectivity (JDBC) untuk menghubungkan ke kluster PolarDB for MySQL.
Pertama, 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>
Hubungkan ke kluster. Ganti parameter <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, <YOUR_TABLE_NAME>, dan <YOUR_TABLE_COLUMN_NAME> dengan informasi 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 akan dihubungkan.
String url = "jdbc:mysql://<HOST>:3306/<DATABASE>?useSSL=false&serverTimezone=UTC";
// Akun database.
String user = "<USER>";
// Password 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 data yang akan diambil.
ResultSet rs = stmt.executeQuery("SELECT * FROM `<YOUR_TABLE_NAME>`");
while(rs.next()) {
// Nama kolom dalam tabel data yang akan diambil.
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 menunjukkan cara menggunakan library PyMySQL untuk menghubungkan ke kluster PolarDB for MySQL.
Pertama, instal library PyMySQL. Jika belum diinstal, jalankan perintah berikut:
pip3 install PyMySQL
Hubungkan ke kluster. Ganti parameter <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan informasi aktual Anda.
import pymysql
# Parameter koneksi database
host = '<HOST>' # Titik akhir kluster PolarDB
port = 3306 # Port default adalah 3306
user = '<USER>' # Akun database
password = '<PASSWORD>' # Password akun database
database = '<DATABASE>' # Nama database yang akan dihubungkan
try:
# Buat koneksi database
connection = pymysql.connect(
host=host,
port=port,
user=user,
passwd=password,
db=database
)
# Dapatkan cursor
with connection.cursor() as cursor:
# Jalankan kueri SQL
sql = "SELECT * FROM `<YOUR_TABLE_NAME>`" # Nama tabel data yang akan diambil
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 menunjukkan cara menggunakan package database/sql dan driver go-sql-driver/mysql untuk menghubungkan ke kluster PolarDB for MySQL.
Pertama, instal driver go-sql-driver/mysql. Anda dapat menjalankan perintah berikut untuk menginstalnya:
go get -u github.com/go-sql-driver/mysql
Hubungkan ke kluster. Ganti parameter <HOST>, nomor port, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan informasi aktual Anda.
package main
import (
"database/sql"
"fmt"
"log"
_ "github.com/go-sql-driver/mysql"
)
func main() {
// Parameter koneksi database
dbHost := "<HOST>" // Titik akhir kluster PolarDB
dbPort := "3306" // Port default adalah 3306
dbUser := "<USER>" // Akun database
dbPass := "<PASSWORD>" // Password akun database
dbName := "<DATABASE>" // Nama database yang akan dihubungkan
// 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)
}
// Buat cursor
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 data yang akan diambil
if err != nil {
log.Fatalf("Gagal menjalankan kueri: %v", err)
}
defer rows.Close()
}
FAQ
Instance ECS tidak dapat menghubungkan ke kluster PolarDB
Lakukan troubleshooting sebagai berikut:
Periksa apakah kluster PolarDB berada dalam status running.
Periksa apakah titik akhir database, port, akun, dan password sudah benar. Untuk informasi lebih lanjut, lihat Dapatkan titik akhir database dan port.
Periksa masalah jaringan. Anda dapat menjalankan ping <database endpoint> atau telnet <database endpoint> <port> pada instance ECS untuk menguji konektivitas jaringan.
Jika Anda menggunakan titik akhir private network:
Periksa apakah instance ECS dan kluster PolarDB berada dalam VPC yang sama. Jika tidak berada dalam VPC yang sama, Anda tidak dapat menggunakan titik akhir private network. Gunakan salah satu solusi berikut untuk menempatkan instance ECS dan kluster PolarDB dalam VPC yang sama:
Periksa apakah alamat IP pribadi, rentang alamat IP, atau security group instance ECS telah ditambahkan ke daftar putih kluster.
Jika Anda menggunakan titik akhir public network, periksa apakah alamat IP publik atau security group instance ECS telah ditambahkan ke daftar putih kluster.
Catatan Menghubungkan ke kluster PolarDB dari virtual host atau server aplikasi sederhana menggunakan titik akhir private network tidak didukung.
Lingkungan on-premises tidak dapat menghubungkan ke kluster PolarDB
Lakukan troubleshooting sebagai berikut:
Periksa apakah kluster PolarDB berada dalam status running.
Periksa apakah titik akhir database, port, akun, dan password sudah benar. Untuk informasi lebih lanjut, lihat Dapatkan titik akhir database dan port.
Catatan Titik akhir database harus berupa titik akhir public network. Jika Anda menggunakan instance ECS yang berada dalam VPC yang sama dengan kluster PolarDB, Anda dapat menggunakan titik akhir private network.
Periksa masalah jaringan. Anda dapat menjalankan ping <database endpoint> atau telnet <database endpoint> <port> di lingkungan on-premises Anda untuk menguji konektivitas jaringan.
Periksa apakah alamat IP publik atau rentang alamat IP lingkungan on-premises Anda telah ditambahkan ke daftar putih kluster.
Anda dapat memperoleh alamat IP publik lingkungan on-premises Anda sebagai berikut:
Sistem operasi Linux: Buka terminal dan jalankan perintah curl ifconfig.me.
Sistem operasi Windows: Buka command prompt dan jalankan perintah curl ip.me.
Sistem operasi macOS: Buka terminal dan jalankan perintah curl ifconfig.me.
Jika lingkungan jaringan on-premises Anda menggunakan server proxy atau konfigurasi serupa lainnya, alamat IP yang diperoleh dengan metode di atas mungkin bukan alamat IP publik asli Anda. Anda dapat menambahkan rentang alamat IP 0.0.0.0/0 ke daftar putih kluster PolarDB. Setelah berhasil terhubung ke kluster, jalankan perintah SHOW PROCESSLIST; untuk memperoleh alamat IP publik asli dan tambahkan ke daftar putih kluster. Kemudian, hapus rentang alamat IP 0.0.0.0/0 dari daftar putih.

Tidak dapat menghubungkan ke kluster PolarDB dengan error "Access denied for user 'xxx'@'xxx' (using password: YES)"
Akun database atau password salah. Periksa apakah Anda memasukkannya dengan benar. Anda dapat membuka PolarDB console dan mengelola akun database serta password di halaman .
Tidak dapat menghubungkan ke kluster PolarDB dengan error "Unknown MySQL server host 'xxx'"
Titik akhir database salah. Periksa apakah Anda memasukkannya dengan benar. Format yang benar adalah pc-xxxxxx.rwlb.rds.aliyuncs.com. Anda dapat membuka PolarDB console dan mengelola titik akhir database Anda di bagian .
Tidak dapat menghubungkan ke kluster PolarDB dengan error "Can't connect to MySQL server on 'xxx'" atau "Connection timed out"
Hal ini mungkin disebabkan karena alamat IP publik atau rentang alamat IP lingkungan Anda saat ini belum ditambahkan ke daftar putih kluster PolarDB, atau alamat IP publik atau rentang alamat IP yang Anda masukkan salah.
Anda dapat memperoleh alamat IP publik lingkungan on-premises Anda sebagai berikut:
Sistem operasi Linux: Buka terminal dan jalankan perintah curl ifconfig.me.
Sistem operasi Windows: Buka command prompt dan jalankan perintah curl ip.me.
Sistem operasi macOS: Buka terminal dan jalankan perintah curl ifconfig.me.
Jika lingkungan jaringan on-premises Anda menggunakan server proxy atau konfigurasi serupa lainnya, alamat IP yang diperoleh dengan metode di atas mungkin bukan alamat IP publik asli Anda. Anda dapat menambahkan rentang alamat IP 0.0.0.0/0 ke daftar putih kluster PolarDB. Setelah berhasil terhubung ke kluster, jalankan perintah SHOW PROCESSLIST; untuk memperoleh alamat IP publik asli dan tambahkan ke daftar putih kluster. Kemudian, hapus rentang alamat IP 0.0.0.0/0 dari daftar putih.

Bagaimana cara mengubah metode koneksi di DMS agar menggunakan cluster endpoint untuk menghubungkan ke kluster PolarDB?
Jika Anda menggunakan DMS untuk menghubungkan ke kluster, karena DMS secara default menggunakan Primary Endpoint untuk menghubungkan ke kluster, Anda harus mengubah metode koneksi agar menggunakan Cluster Endpoint untuk menghubungkan ke kluster PolarDB agar fitur tertentu (seperti In-Memory Column Index (IMCI) dan PolarDB for AI) berfungsi dengan baik, sehingga database proxy (Proxy) secara otomatis mengarahkan pernyataan SQL ke node fungsional yang sesuai.
Prosedur:
Setelah terhubung ke kluster melalui DMS, di daftar pada panel navigasi kiri, temukan kluster target, klik kanan, lalu pilih Edit Instance.

Di kotak dialog Edit Instance, ubah menjadi Connection String, masukkan cluster endpoint kluster, lalu klik Save.
Penting Setelah menyelesaikan modifikasi, tutup jendela SQL asli dan buka jendela SQL baru untuk menjalankan SQL, karena jendela SQL asli menggunakan Primary Endpoint untuk menghubungkan ke kluster, sedangkan Anda telah mengubah Connection String Address.
Mengapa terjadi error koneksi setelah saya mengatur bobot node read-only dalam cluster endpoint menjadi 0 lalu menghapus node tersebut?
Skenario: Anda perlu menghapus node read-only dari cluster endpoint. Untuk menghindari gangguan koneksi ke node tersebut, Anda terlebih dahulu mengatur bobot pemisahan baca/tulis node read-only menjadi 0. Anda berharap bahwa setelah bobot diatur menjadi 0, permintaan baca selanjutnya tidak akan dikirim ke node read-only tersebut. Namun, setelah menghapus node dari cluster endpoint, terjadi error koneksi di sisi aplikasi.
Penyebab: Cluster endpoint memiliki dua Load Balancing Policy: Active Request-based Load Balancing dan Connections-based Load Balancing:
Active Request-based Load Balancing: Setelah mengurangi bobot node read-only menjadi 0, permintaan selanjutnya tidak akan lagi diarahkan ke node tersebut.
Connections-based Load Balancing: Penyeimbangan beban hanya dilakukan selama fase pembentukan koneksi. Jika koneksi yang telah dibentuk sebelumnya terhubung ke node read-only, permintaan selanjutnya pada koneksi tersebut akan selalu dikirim ke node read-only tersebut.
Solusi:
Alihkan Load Balancing Policy untuk cluster endpoint ke Active Request-based Load Balancing.
Atur bobot pemisahan baca/tulis node read-only target menjadi 0.
Hapus node read-only tersebut.