You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Win10下用Rust连接MariaDB遇Diesel依赖问题求助

解决Diesel连接MariaDB时mysqlclient-sys构建失败的问题

一、修复mysqlclient-sys构建错误

1. 配置环境变量指向MariaDB库文件

MariaDB自带libmysqlclient,但构建工具可能无法自动识别路径,手动设置环境变量:

  • 临时生效(仅当前命令行窗口):
    set MYSQLCLIENT_LIB_DIR=C:\Program Files\MariaDB 10.7\lib
    set MYSQLCLIENT_INCLUDE_DIR=C:\Program Files\MariaDB 10.7\include
    
    执行完上述命令后,再重新运行cargo run --bin show_posts
  • 永久生效:在系统环境变量中添加上述两个变量,路径替换为你的MariaDB实际安装目录。

2. 匹配工具链位数

确保你的MariaDB是64位版本(当前环境为Win64,符合要求),Rust 1.78默认使用x86_64工具链,两者位数必须一致,否则会出现库不兼容问题。

3. 升级Diesel依赖版本

mysqlclient-sys v0.3.1版本较旧,对MariaDB 10.7的兼容性不足。更新Cargo.toml中的Diesel到最新稳定版:

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

新版本Diesel依赖的mysqlclient-sys版本更新,能更好适配MariaDB 10.7。

4. 使用MariaDB Connector/C替代自带库

如果自带的libmysqlclient仍有问题,下载MariaDB官方的Connector/C(64位),解压后将环境变量指向解压后的lib和include目录,再重新构建项目。

二、其他可用的Rust连接MariaDB的crate

  • mysql_async:异步客户端,纯Rust实现,无需依赖系统库libmysqlclient,完美兼容MariaDB,支持Tokio/async-std等异步运行时。
  • sqlx:异步、支持编译时SQL检查的数据库工具,内置连接池,支持MariaDB,无需ORM,直接编写SQL,使用门槛低,生态完善。
  • rust-mysql-simple:同步轻量客户端,纯Rust实现,API简洁,适合简单的同步场景。
  • mariadb:基于mysql_async开发的MariaDB专属客户端,优化了MariaDB特有的语法和特性支持。

内容的提问来源于stack exchange,提问作者mike rodent

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.06.23 04:40:54