Hubungkan ke kluster AnalyticDB for MySQL menggunakan paket driver mysql untuk Node.js.
Prasyarat
Sebelum memulai, pastikan Anda telah:
Menginstal Node.js. Unduh dari nodejs.org.
Paket driver
mysqltelah diinstal. Jalankan perintah berikut untuk menginstalnya:npm install mysql --saveMenambahkan alamat IP host Node.js Anda ke daftar putih kluster Anda. Lihat Konfigurasi daftar putih.
Memiliki titik akhir kluster. Ambil dari halaman Cluster Information di Konsol AnalyticDB for MySQL:
Jika host Node.js Anda (misalnya, instans Elastic Compute Service (ECS)) berada dalam virtual private cloud (VPC) yang sama dengan kluster Anda, gunakan titik akhir internal.
Jika tidak, ajukan permohonan untuk titik akhir publik. Lihat Ajukan atau release titik akhir publik.
Hubungkan ke kluster AnalyticDB for MySQL
Simpan kredensial Anda sebagai variabel lingkungan, bukan dengan hardcoding di kode sumber Anda.
Tetapkan variabel lingkungan berikut sebelum menjalankan contoh skrip:
| Variabel | Deskripsi | Contoh |
|---|---|---|
ADB_HOST | Titik akhir kluster | am-bp***.ads.aliyuncs.com |
ADB_PORT | Nomor Port | 3306 |
ADB_USER | Nama akun (privileged atau standar) | account_name |
ADB_PASSWORD | Password akun | account_password |
ADB_DATABASE | Nama database | db_name |
Contoh berikut menghubungkan ke kluster, menjalankan kueri, dan menutup koneksi:
// Langkah 1: Impor driver mysql.
const mysql = require('mysql');
// Langkah 2: Buat koneksi menggunakan kredensial dari variabel lingkungan.
const connection = mysql.createConnection({
host: process.env.ADB_HOST,
port: parseInt(process.env.ADB_PORT, 10) || 3306,
user: process.env.ADB_USER,
password: process.env.ADB_PASSWORD,
database: process.env.ADB_DATABASE,
// Timeout untuk membuat koneksi. Default: 10000 ms.
connectTimeout: 10000,
});
// Langkah 3: Buka koneksi.
connection.connect((err) => {
if (err) throw err;
console.log('Koneksi berhasil dibuat.');
// Langkah 4: Jalankan kueri.
connection.query(
'SELECT count(*) AS count FROM information_schema.tables',
(err, results) => {
if (err) throw err;
console.log('Jumlah:', results[0].count);
// Langkah 5: Tutup koneksi.
connection.end((err) => {
if (err) throw err;
console.log('Koneksi ditutup.');
});
}
);
});Saat kode dijalankan dengan sukses, output-nya mirip dengan:
Koneksi berhasil dibuat.
Jumlah: 42
Koneksi ditutup.Catatan penggunaan
Gunakan kolam koneksi di lingkungan produksi. Membuat koneksi baru untuk setiap permintaan menambah latensi. Gunakan
mysql.createPool()untuk mengelola kolam koneksi yang dapat digunakan ulang. Lihat dokumentasi mysql untuk detailnya.Gunakan kueri terparameterisasi untuk mencegah SQL injection. Paket
mysqlmelakukan escaping nilai kueri di sisi client. Berikan nilai yang berasal dari pengguna sebagai parameter, bukan dengan menginterpolasikannya ke dalam string SQL. Lihat Escaping query values untuk contohnya.