基于湖库一体架构,统一管理结构化、半结构化与非结构化等多模态数据,一个系统承载事务处理、实时分析与 AI 工作负载。
Rust 连接 OB Cloud 云数据库示例程序
更新时间:2026-06-11 10:09:17
本文将介绍如何使用 Rust 和 OB Cloud 云数据库构建一个应用程序,实现创建表、插入数据和查询数据等基本操作。
前提条件
操作步骤
- 检查 Rust 和 Cargo 的版本
- 安装必要的依赖
- 获取 OB Cloud 云数据库连接信息
- 修改
config.rs文件中的数据库连接信息 - 运行
main.rs文件 - 在交互式命令行界面进行相应的操作
步骤一:检查 Rust 和 Cargo 的版本
打开终端,运行以下命令检查 Rust 和 Cargo 的版本:
rustc --version
cargo --version
步骤二:创建项目并安装必要的依赖
创建一个新的 Rust 项目:
cargo new oceanbase_demo cd oceanbase_demo使用
cargo安装mysqlcrate:cargo add mysql(可选)如果需要使用异步操作,可以安装
mysql_asynccrate:cargo add mysql_async
步骤三:获取 OB Cloud 云数据库连接信息
登录 OB Cloud 云数据库控制台。在实例列表页面,展开目标实例的信息,在目标租户下,选择 连接 > 获取连接串。
更多详细操作,请参见 获取连接串。
根据已创建的 OB Cloud 云数据库填写下面 URL 的对应信息。
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 文件中的数据库连接信息。
进入
oceanbase_demo项目文件夹。在
main.rs文件中添加或修改数据库连接信息。在
main.rs中添加完整的示例代码如下: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 文件
进入到
oceanbase_demo项目目录下:cd oceanbase_demo运行以下命令启动程序:
cargo run返回结果如下:
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
常见问题
连接错误:如果无法连接到数据库,请检查:
- 数据库地址和端口是否正确
- 用户名和密码是否正确
- 网络连接是否正常
权限错误:如果遇到权限相关的错误,请确保用户拥有足够的权限来执行所需的操作。
SQL 语法错误:如果 SQL 语句有语法错误,请检查 SQL 语句的语法是否正确。
数据类型错误:如果插入的数据类型与表定义不匹配,请确保插入的数据类型正确。
性能优化建议
- 使用连接池管理数据库连接
- 使用异步操作提高并发性能
- 使用批处理操作提高数据插入效率
- 合理设置数据库连接超时时间