Topik ini menjelaskan cara mengakses instansi database melalui protokol MySQL setelah fitur proxy akses aman diaktifkan untuk instansi tersebut.
Prasyarat
Fitur proxy akses aman telah diaktifkan untuk instansi database. Untuk informasi lebih lanjut, lihat Aktifkan Fitur Proxy Akses Aman.
Anda memiliki otorisasi untuk mengakses instansi database menggunakan titik akhir proxy. Untuk informasi lebih lanjut, lihat Ajukan Izin untuk Mengakses Instansi Database Menggunakan Titik Akhir Proxy.
Catatan penggunaan
Jika instansi database Anda dikelola dalam mode Kolaborasi Keamanan, maka akan terpengaruh oleh aturan keamanan. Maksimal 100.000 baris dapat dikembalikan untuk setiap query.
Jika Anda tidak ingin instansi database Anda terpengaruh oleh aturan keamanan, akses instansi database Anda menggunakan alamat koneksi yang disediakan oleh konsol database, atau hubungi dukungan teknis DMS untuk mengevaluasi skenario tertentu.
Jika instansi database Anda tidak dikelola dalam mode Kolaborasi Keamanan, Anda tidak dapat menyesuaikan jumlah maksimum baris yang dikembalikan per query. Secara default, jumlah maksimum baris yang dapat dikembalikan untuk setiap query adalah 3.000.
Batasan
Periode timeout idle yang dikonfigurasikan untuk klien MySQL tidak boleh melebihi 900 detik.
Jika Anda menggunakan fitur pool koneksi database, interval antara dua deteksi kegagalan pool koneksi berturut-turut tidak boleh melebihi 900 detik.
Kami merekomendasikan Anda menggunakan fitur pool koneksi database dan mengatur interval menjadi 750 detik.
Contoh
Anda dapat menggunakan perintah, klien SQL, atau kode program untuk mengakses instansi database yang telah mengaktifkan fitur proxy akses aman.
Gunakan perintah MySQL
Sintaks:
mysql -h<host> -P<port> -u<user_name> -p<password> <database> -e '<sql_statements>'Tabel berikut menjelaskan parameter.
Parameter | Deskripsi |
host | Nama domain dari instansi. Anda dapat melihat nama domain di titik akhir proxy publik atau internal yang digunakan untuk mengakses instansi melalui protokol MySQL pada halaman detail Proxy Akses Aman dari instansi. |
port | Nomor port dari instansi. Contoh: 3306. Anda dapat melihat nomor port di titik akhir proxy publik atau internal yang digunakan untuk mengakses instansi melalui protokol MySQL pada halaman detail Proxy Akses Aman dari instansi. |
user_name | ID AccessKey yang dialokasikan oleh DMS kepada Anda setelah otorisasi. Anda dapat melihat ID AccessKey Anda di bagian Informasi Otorisasi pada halaman detail Proxy Akses Aman dari instansi. |
password | Rahasia AccessKey yang dialokasikan oleh DMS kepada Anda setelah otorisasi. Anda dapat melihat Rahasia AccessKey Anda di bagian Informasi Otorisasi pada halaman detail Proxy Akses Aman dari instansi. |
database | Nama instansi database yang ingin Anda akses. |
sql_statements | Pernyataan SQL yang ingin Anda eksekusi. Contoh: SHOW DATABASES. |
Contoh kode:
mysql -hdpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com -P3306 -uAccessID -pAccessSecret Schema -e 'SHOW DATABASES'Gunakan kode program
Dalam contoh ini, Python 2 digunakan.
// dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com:3306: nama domain dan nomor port yang digunakan untuk terhubung ke instansi. Anda dapat melihat nama domain dan nomor port di titik akhir proxy yang digunakan untuk mengakses instansi melalui protokol MySQL pada halaman detail Proxy Akses Aman dari instansi.
// schema: nama instansi database yang ingin Anda akses.
String url = "jdbc:mysql://dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com:3306/schema";
Properties properties = new Properties();
// AccessID: ID AccessKey yang digunakan untuk mengakses instansi. Anda dapat melihat ID AccessKey Anda di bagian Informasi Otorisasi pada halaman detail Proxy Akses Aman dari instansi.
properties.setProperty("user", "AccessID");
// AccessSecret: Rahasia AccessKey yang digunakan untuk mengakses instansi. Anda dapat melihat Rahasia AccessKey Anda di bagian Informasi Otorisasi pada halaman detail Proxy Akses Aman dari instansi.
properties.setProperty("password", "AccessSecret");
try (Connection connection = DriverManager.getConnection(url, properties)) {
try (Statement statement = connection.createStatement()) {
// Gunakan metode execute() untuk mengeksekusi pernyataan SQL. Dalam contoh ini, pernyataan SHOW DATABASES dieksekusi. Anda juga dapat mengeksekusi pernyataan SQL lainnya.
statement.execute("SHOW DATABASES");
ResultSet resultSet = statement.getResultSet();
while (resultSet.next()) {
System.out.println(resultSet.getString(1));
}
}
} catch (Exception e) {
e.printStackTrace();
}import pymysql
try:
# host: nama domain dari instansi.
# port: nomor port yang digunakan untuk terhubung ke instansi.
# user: ID AccessKey yang digunakan untuk mengakses instansi. Anda dapat melihat Rahasia AccessKey Anda di bagian Informasi Otorisasi pada halaman detail Proxy Akses Aman dari instansi.
# password: Rahasia AccessKey yang digunakan untuk mengakses instansi. Anda dapat melihat Rahasia AccessKey Anda di bagian Informasi Otorisasi pada halaman detail Proxy Akses Aman dari instansi.
# database: nama instansi database yang ingin Anda akses.
conn = pymysql.connect(host='dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com', port=3306, user='AccessID', password="AccessSecret",database ='schema')
cur = conn.cursor(pymysql.cursors.DictCursor)
# Gunakan metode execute() untuk mengeksekusi pernyataan SQL. Dalam contoh ini, pernyataan SHOW DATABASES dieksekusi. Anda juga dapat mengeksekusi pernyataan SQL lainnya.
cur.execute('SHOW DATABASES')
rs = cur.fetchall()
print rs
finally:
cur.close()
conn.close()var mysql = require('mysql');
var connection = mysql.createConnection({
// host: nama domain dari instansi.
host : 'dpxxxx-xxxxxxxx.proxy.dms.aliyuncs.com',
// user: ID AccessKey yang digunakan untuk mengakses instansi. Anda dapat melihat Rahasia AccessKey Anda di bagian Informasi Otorisasi pada halaman detail Proxy Akses Aman dari instansi.
user : 'AccessID',
// password: Rahasia AccessKey yang digunakan untuk mengakses instansi. Anda dapat melihat Rahasia AccessKey Anda di bagian Informasi Otorisasi pada halaman detail Proxy Akses Aman dari instansi.
password : 'AccessSecret',
// port: nomor port yang digunakan untuk terhubung ke instansi.
port : '3306',
// database: nama instansi database yang ingin Anda akses.
database : 'schema'
});
connection.connect();
// Gunakan metode execute() untuk mengeksekusi pernyataan SQL. Dalam contoh ini, pernyataan SHOW DATABASES dieksekusi. Anda juga dapat mengeksekusi pernyataan SQL lainnya.
connection.query('SHOW DATABASES', function(err, result) {
console.log(result);
});
connection.end();Gunakan klien SQL
Dalam contoh ini, klien Navicat digunakan. Tetapkan parameter berikut:
Host: nama domain dari instansi.
Port: nomor port yang digunakan untuk terhubung ke instansi.
Nama Pengguna: ID AccessKey yang digunakan untuk mengakses instansi.
Kata Sandi: Rahasia AccessKey yang digunakan untuk mengakses instansi.

