全部产品
Search
文档中心

Lindorm:Menggunakan Rust untuk mengembangkan aplikasi

更新时间:Jul 06, 2025

Topik ini menjelaskan cara menggunakan Rust untuk terhubung dan menggunakan LindormTable.

Prasyarat

Prosedur

  1. Instal Rust. Untuk informasi lebih lanjut, lihat Instal Rust.

  2. Tambahkan dependensi berikut ke file Cargo.toml:

    [dependencies]
    mysql="*"

    Jika Anda menetapkan mysql ke *, versi terbaru MySQL digunakan secara default.

  3. 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.

    Penting
    • Jika 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 Database Connections > Wide Table Engine. 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.

  4. 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");
  5. Jalankan perintah berikut untuk membangun proyek Rust:

    cargo build
  6. Jalankan 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