Include r2d2_mysql
in the [dependencies]
section of your Cargo.toml
:
toml
[dependencies]
r2d2_mysql = "23"
```rust use std::{env, sync::Arc, thread}; use mysql::{prelude::*, Opts, OptsBuilder}; use r2d2_mysql::MySqlConnectionManager;
fn main() { let url = env::var("DATABASEURL").unwrap(); let opts = Opts::fromurl(&url).unwrap(); let builder = OptsBuilder::fromopts(opts); let manager = MySqlConnectionManager::new(builder); let pool = Arc::new(r2d2::Pool::builder().maxsize(4).build(manager).unwrap());
let mut tasks = vec![];
for _ in 0..3 {
let pool = pool.clone();
let th = thread::spawn(move || {
let mut conn = pool.get().expect("error getting connection from pool");
let _ = conn
.query("SELECT version()")
.map(|rows: Vec<String>| rows.is_empty())
.expect("error executing query");
});
tasks.push(th);
}
for th in tasks {
let _ = th.join();
}
} ```