---
title: "Rust 连接 OB Cloud 云数据库示例程序 - OB Cloud 云数据库 master | OceanBase 文档中心"
description: Rust 连接 OB Cloud 云数据库示例程序 本文将介绍如何使用 Rust 和 OB Cloud 云数据库构建一个应用程序，实现创建表、插入数据和查询数据等基本操作。 前提条件 您已安装 Rust 工具链（rustup）和 Cargo 您已注册 OB Cloud 云数据库账号，并创建集群实例和 MySQL 兼容…
image: https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*OSPzQ6GUQF4AAAAAQHAAAAgAeiGDAQ/original
---
切换语言

- 中文站 - 简体中文
- International - English
- 日本站 - 日本語

文档反馈![](https://mdn.alipayobjects.com/huamei_22khvb/afts/img/A*qbZXRo_94ZEAAAAAAAAAAAAADiGDAQ/original) OB Cloud 云数据库

# Rust 连接 OB Cloud 云数据库示例程序

更新时间：2026-06-11 10:09:17

本文将介绍如何使用 Rust 和 OB Cloud 云数据库构建一个应用程序，实现创建表、插入数据和查询数据等基本操作。

## 前提条件

- 您已安装 Rust 工具链（rustup）和 Cargo
 - 您已注册 OB Cloud 云数据库账号，并创建集群实例和 MySQL 兼容模式租户。详情请参见 [创建集群实例](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000006237761) 和 [创建租户](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000006083166)。

## 操作步骤

1. 检查 Rust 和 Cargo 的版本
 2. 安装必要的依赖
 3. 获取 OB Cloud 云数据库连接信息
 4. 修改 `config.rs` 文件中的数据库连接信息
 5. 运行 `main.rs` 文件
 6. 在交互式命令行界面进行相应的操作

### 步骤一：检查 Rust 和 Cargo 的版本

打开终端，运行以下命令检查 Rust 和 Cargo 的版本：

```shell
rustc --version
cargo --version

```

### 步骤二：创建项目并安装必要的依赖

1. 创建一个新的 Rust 项目：

   ```shell
   cargo new oceanbase_demo
   cd oceanbase_demo

   ```
 2. 使用 `cargo` 安装 `mysql` crate：

   ```shell
   cargo add mysql

   ```
 3. （可选）如果需要使用异步操作，可以安装 `mysql_async` crate：

   ```shell
   cargo add mysql_async

   ```

### 步骤三：获取 OB Cloud 云数据库连接信息

1. 登录 [OB Cloud 云数据库控制台](https://console-cn.oceanbase.com/)。在实例列表页面，展开目标实例的信息，在目标租户下，选择 **连接** > **获取连接串**。

   更多详细操作，请参见 [获取连接串](https://www.oceanbase.com/docs/common-oceanbase-cloud-1000000006082980)。
 2. 根据已创建的 OB Cloud 云数据库填写下面 URL 的对应信息。

   ```shell
   mysql -h$host -P$port -u$user_name -p$password -D$database_name

   ```

   **参数说明：**

      - `$host`：提供 OB Cloud 云数据库连接地址，例如 `t********.********.oceanbase.cloud`。
      - `$port`：提供 OB Cloud 云数据库连接端口，默认为 3306。
      - `$database_name`：需要访问的数据库名称。
      - `$user_name`：提供访问数据库的账号。
      - `$password`：提供账号密码。

### 步骤四：修改 main.rs 文件中的数据库连接信息

根据步骤三中的信息修改 `main.rs` 文件中的数据库连接信息。

1. 进入 `oceanbase_demo` 项目文件夹。
 2. 在 `main.rs` 文件中添加或修改数据库连接信息。

   **在 `main.rs` 中添加完整的示例代码如下：**

   ```rust
   use mysql::*;
   use mysql::prelude::*;

   fn main() -> Result<(), Box<dyn std::error::Error>> {
       const OCEANBASE_CONFIG: &str = "mysql://`$user_name`:`$password`@$host:$port/$database_name?charset=utf8mb4";

       // Establish connection
       println!("Connecting to database...");
       let pool = Pool::new(DB_URL)?;
       let mut conn = pool.get_conn()?;
       println!("Connected successfully!");

       // Create table
       conn.query_drop(
           r"CREATE TABLE IF NOT EXISTS users (
               id INT PRIMARY KEY AUTO_INCREMENT,
               name VARCHAR(255) NOT NULL,
               email VARCHAR(255) NOT NULL,
               created_at TIMESTAMP DEFAULT CURRENT_TIMESTAMP
           )"
       )?;

       println!("Table created successfully!");

       // Insert sample data
       conn.exec_batch(
           r"INSERT INTO users (name, email) VALUES (?, ?)",
           vec![
               ("Alice", "alice@example.com"),
               ("Bob", "bob@example.com"),
               ("Charlie", "charlie@example.com"),
           ]
       )?;

       println!("Sample data inserted successfully!");

       // Query and display the data
       let selected_users = conn
           .query_map(
               "SELECT id, name, email FROM users",
               |(id, name, email)| {
                   User { id, name, email }
               }
           )?;

       println!("\nCurrent users in database:");
       for user in selected_users {
           println!("ID: {}, Name: {}, Email: {}", user.id, user.name, user.email);
       }

       Ok(())
   }

   // Structure to hold user data
   struct User {
       id: i32,
       name: String,
       email: String,
   }

   ```

### 步骤五：运行 main.rs 文件

1. 进入到 `oceanbase_demo` 项目目录下：

   ```shell
   cd oceanbase_demo

   ```
 2. 运行以下命令启动程序：

   ```shell
   cargo run

   ```

   返回结果如下：

   ```shell
   Connecting to database...
   Connected successfully!
   Table created successfully!
   Sample data inserted successfully!

   Current users in database:
   ID: 1, Name: Alice, Email: alice@example.com
   ID: 2, Name: Bob, Email: bob@example.com
   ID: 3, Name: Charlie, Email: charlie@example.com
   ID: 4, Name: Alice, Email: alice@example.com
   ID: 5, Name: Bob, Email: bob@example.com
   ID: 6, Name: Charlie, Email: charlie@example.com

   ```

## 常见问题

1. **连接错误**：如果无法连接到数据库，请检查：

      - 数据库地址和端口是否正确
      - 用户名和密码是否正确
      - 网络连接是否正常
 2. **权限错误**：如果遇到权限相关的错误，请确保用户拥有足够的权限来执行所需的操作。
 3. **SQL 语法错误**：如果 SQL 语句有语法错误，请检查 SQL 语句的语法是否正确。
 4. **数据类型错误**：如果插入的数据类型与表定义不匹配，请确保插入的数据类型正确。

## 性能优化建议

1. 使用连接池管理数据库连接
 2. 使用异步操作提高并发性能
 3. 使用批处理操作提高数据插入效率
 4. 合理设置数据库连接超时时间

 上一篇 下一篇 ![有帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*y6ocSqN8cqsAAAAAAAAAAAAAARQnAQ)![无帮助](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*BG9IQJyLHF8AAAAAAAAAAAAAARQnAQ)![反馈](https://gw.alipayobjects.com/mdn/ob_asset/afts/img/A*eTWdQKCRKHwAAAAAAAAAAAAAARQnAQ)[AI](https://www.oceanbase.com/obi) 咨询热线
