Topik ini menjelaskan cara menggunakan Rust untuk terhubung dan menggunakan LindormTable.
Prasyarat
Fitur kompatibilitas MySQL diaktifkan untuk instance tersebut. Untuk informasi lebih lanjut, lihat Aktifkan fitur kompatibilitas MySQL.
Alamat IP klien Anda ditambahkan ke daftar putih instance Lindorm Anda. Untuk informasi lebih lanjut, lihat Konfigurasikan daftar putih.
Prosedur
Instal Rust. Untuk informasi lebih lanjut, lihat Instal Rust.
Tambahkan dependensi berikut ke file
Cargo.toml:[dependencies] mysql="*"Jika Anda menetapkan mysql ke
*, versi terbaru MySQL digunakan secara default.Konfigurasikan parameter koneksi.
let opts = OptsBuilder::new() .ip_or_hostname(Some("ld-uf6k8yqb741t3****-proxy-sql-lindorm-public.lindorm.rds.aliyuncs.com")) .user(Some("user")) .pass(Some("test")) .db_name(Some("default")) .tcp_port(33060);Parameter
Parameter
Deskripsi
ip_or_hostname
Titik akhir LindormTable untuk MySQL. Untuk informasi lebih lanjut tentang cara memperoleh titik akhir, lihat Lihat titik akhir.
PentingJika aplikasi Anda diterapkan pada instance ECS, kami sarankan Anda menggunakan VPC untuk terhubung ke instance Lindorm guna memastikan keamanan yang lebih tinggi dan latensi jaringan yang lebih rendah.
Jika aplikasi Anda diterapkan pada server lokal dan perlu terhubung ke instance Lindorm melalui Internet, Anda dapat melakukan langkah-langkah berikut untuk mengaktifkan titik akhir Internet untuk instance tersebut di konsol Lindorm: Di panel navigasi sebelah kiri, pilih . Pada tab Wide Table Engine, klik Enable Public Endpoint.
Jika Anda menggunakan VPC untuk mengakses instance Lindorm, tentukan LindormTable VPC endpoint for MySQL dalam nilai ip_or_hostname. Jika Anda menggunakan Internet untuk mengakses instance Lindorm, tentukan LindormTable Internet endpoint for MySQL dalam nilai ip_or_hostname.
user
Jika Anda lupa kata sandi Anda, Anda dapat mengubah kata sandi di sistem manajemen kluster LindormTable. Untuk informasi lebih lanjut, lihat Kelola pengguna.
pass
db_name
Nama database yang ingin Anda sambungkan. Secara default, klien Anda terhubung ke database bernama default.
tcp_port
Port yang digunakan untuk mengakses LindormTable menggunakan MySQL. Nilai parameter ini tetap 33060.
Buat koneksi dan gunakan SQL LindormTable untuk melakukan operasi di LindormTable. Blok kode berikut memberikan contoh tentang cara menggunakan SQL LindormTable untuk membuat tabel:
let pool = Pool::new(opts).unwrap(); let mut conn = pool.get_conn().unwrap(); // Buat tabel. conn.query_drop( r"create table if not exists user_test(id int, name varchar,age int, primary key(id))").expect("Gagal membuat tabel");Jalankan perintah berikut untuk membangun proyek Rust:
cargo buildJalankan perintah berikut untuk menjalankan proyek Rust:
cargo run
Contoh kode
Kode berikut memberikan contoh lengkap tentang cara terhubung dan menggunakan LindormTable dengan menggunakan Rust:
use mysql::*;
use mysql::prelude::*;
fn main() {
// Tentukan titik akhir LindormTable untuk MySQL, nama pengguna dan kata sandi yang digunakan untuk terhubung ke LindormTable, database yang ingin Anda sambungkan, dan port yang digunakan untuk terhubung ke LindormTable.
let opts = OptsBuilder::new()
.ip_or_hostname(Some("ld-xxxx-sql-lindorm.lindorm.rds.aliyuncs.com"))
.user(Some("root"))
.pass(Some("root"))
.db_name(Some("default"))
.tcp_port(33060);
let pool = Pool::new(opts).unwrap();
let mut conn = pool.get_conn().unwrap();
// Buat tabel.
conn.query_drop( r"create table if not exists user_test(id int, name varchar,age int, primary key(id))").expect("Gagal membuat tabel");
// Masukkan data ke tabel.
conn.exec_drop(r"upsert into user_test(id,name,age) values(?,?,?)",(1,"zhangsan",17)).expect("Gagal memasukkan data 1");
conn.exec_drop(r"upsert into user_test(id,name,age) values(?,?,?)",(2,"lisi",27)).expect("Gagal memasukkan data 2");
// Kueri data dalam tabel.
let result = conn.query(r"select * from user_test").expect("Gagal memilih");
for row in result {
let(id, name, age):(i32, String, i32) = from_row(row);
println!("Id: {}, Nama: {}, Usia: {}",id, name, age);
}
}Hasil berikut dikembalikan:
Finished dev [unoptimized + debuginfo] target(s) in 0.09s
Running `target/debug/hello_word`
Id: 1, Nama: zhangsan, Usia: 17
Id: 2, Nama: lisi, Usia: 27