rust actix-webv2.0 diesel开发及相关问题解决

cargo.toml

[package]
name = "book-of-changes"
version = "0.1.0"
authors = ["litttley "]
edition = "2018"

# See more keys and their definitions at https://doc.rust-lang.org/cargo/reference/manifest.html

[dependencies]
actix-rt="1.1.1"
actix-web="2.0.0"
env_logger="0.6"
dotenv = "0.15"

diesel = { version = "1.4.5", features = ["mysql", "r2d2","chrono"] }

数据库连接池创建

use diesel::mysql::MysqlConnection;
use diesel::r2d2::{ConnectionManager, Pool, PoolError, PooledConnection};

pub type MysqlPool = Pool<ConnectionManager<MysqlConnection>>;
//pub type MySqlPooledConnection = PooledConnection<ConnectionManager<MysqlConnection>>;

pub fn connect() -> MysqlPool {
    let connspec = dotenv::var("DATABASE_URL").expect("DATABASE_URL must be set");
    let manager = ConnectionManager::<MysqlConnection>::new(connspec);
    Pool::builder().build(manager).expect("Error")
}



diesel mysql驱动安装方法参照

cargo install diesel_cli --no-default-features --features mysql
cd api_server
echo "DATABASE_URL=mysql://root@localhost:3306/test_db" > .env
问题 1
could not find native static library `mysqlclient`, perhaps an -L flag is missing?
解决办法

1.下载windows mysql connector

下载地址:https://downloads.mysql.com/archives/c-c/

2、添加windows环境变量

MYSQLCLIENT_LIB_DIR=D:\soft\mysql-connector-c-6.1.11\lib\vs14

然后再重新执行cargo install diesel_cli --no-default-features --features mysql
建议在git-bash 窗口中执行,cmd窗口有可能报错
在这里插入图片描述
在这里插入图片描述如果之前用过postgres的数据库,此时生成diesel.exe会替换为mysql版本的
此时cargo build 编译项目还是会报类似错误,可以用cargo clean 清理后再重新编译解决,如果还有问题就将 D:\soft\mysql-connector-c-6.1.11\lib\vs14 mysqlclient.lib 复制到 D:\soft\Microsoft Visual Studio\2017\Professional\VC\Tools\MSVC\14.15.26726\lib\x64目录下

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值