Prasyarat
Lakukan tugas berikut sebelum menghubungkan:
Dapatkan endpoint dan port database
Buka PolarDB console. Di Cluster List, klik ID kluster target untuk membuka halaman detail kluster. Di bagian Database Connection, dapatkan endpoint database (primary endpoint, cluster endpoint, dan custom endpoint).
Catatan Gunakan cluster endpoint. Port default-nya 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 endpoint publik, klik Request di sebelah kanan.
public network adalah Internet. Mengakses kluster melalui public network mungkin tidak memberikan performa optimal untuk kluster PolarDB Anda.
Virtual host dan server aplikasi sederhana tidak dapat terhubung ke PolarDB melalui endpoint private network.
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 dengan izin berbeda. Buat akun sesuai kebutuhan Anda.
Konfigurasikan daftar putih kluster
Buka PolarDB console. Di Cluster List, klik ID kluster target untuk membuka halaman detail kluster. Di halaman , tambahkan daftar putih IP 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.
Dapatkan alamat IP publik Anda:
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 memiliki konfigurasi serupa lainnya, alamat IP yang diperoleh dengan metode di atas mungkin bukan alamat IP publik sebenarnya. 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 mendapatkan alamat IP publik sebenarnya 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 prasyarat, hubungkan ke kluster.
Menghubungkan ke kluster database
Pilih metode koneksi yang sesuai dengan kebutuhan Anda:
Gunakan DMS untuk menghubungkan ke kluster
DMS adalah layanan manajemen data grafis dari Alibaba Cloud. Anda dapat mengelola kluster PolarDB langsung di DMS tanpa perlu menginstal alat tambahan.
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.
Masukkan database account dan database password untuk kluster PolarDB for MySQL, lalu klik Log on.
Setelah login, temukan kluster PolarDB for MySQL di daftar Logged-in Instances pada panel navigasi kiri.
Gunakan client untuk menghubungkan ke kluster
Anda dapat menggunakan client apa pun yang kompatibel dengan MySQL untuk menghubungkan ke kluster PolarDB. Contoh berikut menggunakan MySQL Workbench 8.0.29.
Unduh dan instal MySQL Workbench.
Buka MySQL Workbench dan pilih .
Masukkan informasi koneksi dan klik OK.

Parameter | Deskripsi | Contoh |
Hostname | Endpoint database. | pc-2***.rwlb.rds.aliyuncs.com |
Port | Nomor port endpoint database.
Catatan Port default-nya 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 di server Anda, jalankan perintah berikut untuk menghubungkan ke kluster PolarDB for MySQL.
Sintaksis:
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 | Endpoint database. | pc-2***.rwlb.rds.aliyuncs.com |
-P | Nomor port endpoint database.
Catatan Port default-nya adalah 3306. Jika port-nya adalah port default, Anda dapat menghilangkan parameter ini.
| 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
Menghubungkan ke kluster PolarDB for MySQL sama seperti menghubungkan ke database MySQL mana pun. Ganti endpoint, port, akun, dan password dengan nilai kluster PolarDB Anda. Berikut contoh berdasarkan bahasa pemrograman:
Java
Gunakan driver JDBC MySQL dalam proyek Maven untuk menghubungkan ke kluster PolarDB for MySQL.
Tambahkan dependensi driver JDBC MySQL ke file pom.xml Anda:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>8.0.27</version>
</dependency>
Hubungkan ke kluster. Ganti <HOST>, <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) {
// Endpoint, 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
Gunakan library PyMySQL dengan Python 3 untuk menghubungkan ke kluster PolarDB for MySQL.
Instal library PyMySQL:
pip3 install PyMySQL
Hubungkan ke kluster. Ganti <HOST>, <USER>, <PASSWORD>, <DATABASE>, dan <YOUR_TABLE_NAME> dengan nilai aktual Anda.
import pymysql
# Parameter koneksi database
host = '<HOST>' # Endpoint kluster PolarDB
port = 3306 # Port default-nya 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
Gunakan paket database/sql dan driver go-sql-driver/mysql (Go 1.23.0) untuk menghubungkan ke kluster PolarDB for MySQL.
Instal driver go-sql-driver/mysql:
go get -u github.com/go-sql-driver/mysql
Hubungkan ke kluster. Ganti <HOST>, <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>" // Endpoint kluster PolarDB
dbPort := "3306" // Port default-nya 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 terhubung ke PolarDB kluster
Lakukan troubleshooting sebagai berikut:
Periksa apakah kluster PolarDB berada dalam status running.
Verifikasi bahwa endpoint database, port, akun, dan password sudah benar. Dapatkan endpoint dan port database.
Uji konektivitas jaringan dari instance ECS menggunakan ping <database endpoint> atau telnet <database endpoint> <port>.
Jika Anda menggunakan endpoint 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 endpoint 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 endpoint public network, periksa apakah alamat IP publik atau security group instance ECS telah ditambahkan ke daftar putih kluster.
Catatan Virtual host dan server aplikasi sederhana tidak dapat terhubung ke PolarDB melalui endpoint private network.
Lingkungan on-premises tidak dapat terhubung ke kluster PolarDB
Lakukan troubleshooting sebagai berikut:
Periksa apakah kluster PolarDB berada dalam status running.
Verifikasi bahwa endpoint database, port, akun, dan password sudah benar. Dapatkan endpoint dan port database.
Catatan Endpoint database harus berupa endpoint public network. Jika Anda menggunakan instance ECS yang berada dalam VPC yang sama dengan kluster PolarDB, Anda dapat menggunakan endpoint private network.
Uji konektivitas jaringan dari lingkungan on-premises Anda menggunakan ping <database endpoint> atau telnet <database endpoint> <port>.
Periksa apakah alamat IP publik atau rentang alamat IP lingkungan on-premises Anda telah ditambahkan ke daftar putih kluster.
Dapatkan alamat IP publik Anda:
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 memiliki konfigurasi serupa lainnya, alamat IP yang diperoleh dengan metode di atas mungkin bukan alamat IP publik sebenarnya. 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 mendapatkan alamat IP publik sebenarnya dan tambahkan ke daftar putih kluster. Kemudian, hapus rentang alamat IP 0.0.0.0/0 dari daftar putih.

Tidak dapat terhubung ke kluster PolarDB dengan error "Access denied for user 'xxx'@'xxx' (using password: YES)"
Akun database atau password salah. Buka PolarDB console dan verifikasi atau atur ulang kredensial di halaman .
Tidak dapat terhubung ke kluster PolarDB dengan error "Unknown MySQL server host 'xxx'"
Endpoint database salah. Format yang benar adalah pc-xxxxxx.rwlb.rds.aliyuncs.com. Buka PolarDB console dan verifikasi endpoint di bagian .
Tidak dapat terhubung ke kluster PolarDB dengan error "Can't connect to MySQL server on 'xxx'" atau "Connection timed out"
Alamat IP publik atau rentang alamat IP lingkungan Anda kemungkinan tidak ada dalam daftar putih kluster PolarDB, atau alamat IP yang Anda masukkan salah.
Dapatkan alamat IP publik Anda:
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 memiliki konfigurasi serupa lainnya, alamat IP yang diperoleh dengan metode di atas mungkin bukan alamat IP publik sebenarnya. 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 mendapatkan alamat IP publik sebenarnya 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?
Saat Anda menggunakan DMS untuk menghubungkan ke kluster, DMS secara default terhubung melalui Primary Endpoint. Untuk menggunakan fitur-fitur seperti In-Memory Column Index (IMCI) dan PolarDB for AI, beralihlah ke Cluster Endpoint sehingga proksi database PolarDB 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 mengubah endpoint, tutup jendela SQL yang ada dan buka jendela baru. Jendela asli masih menggunakan Primary Endpoint, bukan Connection String Address yang telah diperbarui.
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 mengharapkan bahwa setelah bobot diatur menjadi 0, permintaan baca selanjutnya tidak akan dikirim ke node read-only tersebut. Namun, setelah Anda 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:
Ubah Load Balancing Policy untuk cluster endpoint menjadi Active Request-based Load Balancing.
Atur bobot pemisahan baca/tulis node read-only target menjadi 0.
Hapus node read-only tersebut.