1.安装mysql
cargo add sqlx
设置cargo.toml
sqlx = { version = “0.8.2”, features = [“runtime-tokio”, “mysql”] }
2.连接mysql
use crate::controllers::create_router;
use axum::Router;
use sqlx::mysql::MySqlPool;
use std::error::Error;
use std::sync::Arc;
pub async fn run_router_server() -> Result<Router, Box<dyn Error>> {
let pool: sqlx::Pool<sqlx::MySql> =
MySqlPool::connect("mysql://root:123...@47.....70:999/xxx").await?;
let shared_pool = Arc::new(pool); // 使用 Arc 共享连接池
let app = create_router(shared_pool.clone()); // 使用组合的 Router
Ok(app)
}
这样每个路由里面都可以共用一个mysql实例了