すべてのプロダクト
Search
ドキュメントセンター

Lindorm:Rust を使用してアプリケーションを開発する

最終更新日:Mar 24, 2025

このトピックでは、Rust を使用して LindormTable に接続し、使用する方法について説明します。

前提条件

  • インスタンスで MySQL 互換機能が有効になっていること。詳細については、「MySQL 互換機能を有効にする」をご参照ください。

  • クライアントの IP アドレスが Lindorm インスタンスのホワイトリストに追加されていること。詳細については、「ホワイトリストを構成する」をご参照ください。

手順

  1. Rust をインストールします。詳細については、「Install Rust」をご参照ください。

  2. 次の依存関係を Cargo.toml ファイルに追加します。

    [dependencies]
    mysql="*"

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

    パラメータ

    pass

    パラメータ

    説明

    ip_or_hostname

    MySQL 用の LindormTable エンドポイント。 エンドポイントの取得方法については、「エンドポイントを表示する」をご参照ください。

    重要
    • アプリケーションが ECS インスタンスにデプロイされている場合は、セキュリティとネットワークレイテンシを向上させるために、VPC を使用して Lindorm インスタンスに接続することをお勧めします。

    • アプリケーションがローカルサーバーにデプロイされており、インターネット経由で Lindorm インスタンスに接続する必要がある場合は、Lindorm コンソールでインスタンスのインターネットエンドポイントを有効にするために、次の手順を実行します。左側のナビゲーションペインで、[データベース接続] > [ワイドテーブルエンジン] を選択します。[ワイドテーブルエンジン] タブで、[パブリックエンドポイントを有効にする] をクリックします。

    • VPC を使用して Lindorm インスタンスにアクセスする場合は、ip_or_hostname の値に [lindormtable VPC エンドポイント(mysql 用)] を指定します。インターネットを使用して Lindorm インスタンスにアクセスする場合は、ip_or_hostname の値に [lindormtable インターネットエンドポイント(mysql 用)] を指定します。

    user

    パスワードを忘れた場合は、LindormTable のクラスタ管理システムでパスワードを変更できます。詳細については、「ユーザーの管理」をご参照ください。

    LindormTable に接続するために使用するパスワード。

    db_name

    接続先のデータベースの名前。デフォルトでは、クライアントは default という名前のデータベースに接続されます。

    tcp_port

    MySQL を使用して LindormTable にアクセスするために使用するポート。このパラメータの値は 33060 に固定されています。

  4. 接続を確立し、LindormTable SQL を使用して LindormTable で操作を実行します。次のコードブロックは、LindormTable SQL を使用してテーブルを作成する方法の例を示しています。

    let pool = Pool::new(opts).unwrap();
    let mut conn = pool.get_conn().unwrap();
    // Create a table. // テーブルを作成します。
    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

サンプルコード

次のコードは、Rust を使用して LindormTable に接続し、使用する方法の完全な例を示しています。

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

fn main() {
    // Specify the LindormTable endpoint for MySQL, username and password used to connect to LindormTable, the database that you want to connect, and the port used to connect to LindormTable. // LindormTable の MySQL エンドポイント、LindormTable に接続するために使用するユーザー名とパスワード、接続するデータベース、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();
    // Create a table. // テーブルを作成します。
    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"); // テーブルの作成に失敗しました。

    // Insert data to the table. // テーブルにデータを挿入します。
    conn.exec_drop(r"upsert into user_test(id,name,age) values(?,?,?)",(1,"zhangsan",17)).expect("Failed to insert data 1"); // データ 1 の挿入に失敗しました。
    conn.exec_drop(r"upsert into user_test(id,name,age) values(?,?,?)",(2,"lisi",27)).expect("Failed to insert data 2"); // データ 2 の挿入に失敗しました。

    // Query data in the table. // テーブル内のデータをクエリします。
    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