日本熟妇hd丰满老熟妇,中文字幕一区二区三区在线不卡 ,亚洲成片在线观看,免费女同在线一区二区

基于Rust的應用開發

本文介紹基于Rust連接并使用寬表引擎的方法。

前提條件

操作步驟

  1. 安裝Rust。如何安裝,請參見Rust

  2. Cargo.toml文件中,添加以下依賴項。

    [dependencies]
    mysql="*"

    mysql指定為*時默認會使用最新版本。

  3. 配置連接參數。

    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);

    參數說明

    參數

    說明

    ip_or_hostname

    Lindorm寬表引擎的MySQL兼容地址。如何獲取,請參見查看連接地址

    重要
    • 如果應用部署在ECS實例,建議您通過專有網絡訪問Lindorm實例,可獲得更高的安全性和更低的網絡延遲。

    • 如果應用部署在本地,在通過公網連接Lindorm實例前,需在控制臺開通公網地址。開通方式:在控制臺選擇數據庫連接 > 寬表引擎,在寬表引擎頁簽單擊開通公網地址

    • 通過專有網絡訪問Lindorm實例,ip_or_hostname請填寫MySQL兼容地址對應的專有網絡地址。通過公網訪問Lindorm實例,ip_or_hostname請填寫MySQL兼容地址對應的公網地址。

    user

    如果您忘記用戶密碼,可以通過Lindorm寬表引擎的集群管理系統修改密碼。具體操作,請參見修改用戶密碼

    pass

    db_name

    需要連接的數據庫名稱。默認連接default數據庫。

    tcp_port

    Lindorm寬表引擎MySQL兼容協議的端口,固定為33060。

  4. 創建連接,通過寬表SQL語法使用Lindorm寬表引擎。以創建表為例。

    let pool = Pool::new(opts).unwrap();
    let mut conn = pool.get_conn().unwrap();
    //創建表
    conn.query_drop( r"create table if not exists user_test(id int, name varchar,age int, primary key(id))").expect("Failed to create table");
  5. 執行以下命令構建Rust項目。

    cargo build
  6. 執行以下命令運行Rust項目。

    cargo run

完整示例

完整示例代碼如下:

use mysql::*;
use mysql::prelude::*;

fn main() {
    //連接參數,依次為Lindorm寬表引擎MySQL協議的連接地址、用戶名、密碼、數據庫、端口
    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();
    //創建表
    conn.query_drop( r"create table if not exists user_test(id int, name varchar,age int, primary key(id))").expect("Failed to create table");

    //插入數據
    conn.exec_drop(r"upsert into user_test(id,name,age) values(?,?,?)",(1,"zhangsan",17)).expect("Failed to insert data 1");
    conn.exec_drop(r"upsert into user_test(id,name,age) values(?,?,?)",(2,"lisi",27)).expect("Failed to insert data 2");

    //查詢數據
    let result = conn.query(r"select * from user_test").expect("Failed to select");
    for row in result {
        let(id, name, age):(i32, String, i32) = from_row(row);
        println!("Id: {}, Name: {}, Age: {}",id, name, age);
    }
}

執行成功后將返回如下結果:

Finished dev [unoptimized + debuginfo] target(s) in 0.09s
     Running `target/debug/hello_word`
Id: 1, Name: zhangsan, Age: 17
Id: 2, Name: lisi, Age: 27