所以,我的问题是我无法在 Windows 11 上使用 MySQL 作为数据库在 Rust/Diesel 后端 Web 应用程序中成功运行迁移。
我尝试了两个不同的 MySQL lib/DLL 文件版本(8.3 和 8.0),并重新安装了 Diesel CLI。我还将 MySQL 社区服务器与 MariaDB 的 XAMPP 安装并排安装,两者都不起作用,但错误消息是相同的。
Rust 版本:
rustc 1.75.0 (82e1608df 2023-12-21)
MySQL 版本:
8.0.36 (MySQL Community Server)
(编辑:以前的 8.3.0)
运行
diesel setup
或 diesel migration run
时的实际错误消息如下:
Using unsupported buffer type: 253 (parameter: 1)
我的第一个迁移文件(
up.sql
)如下所示:
CREATE TABLE categories (
id INTEGER PRIMARY KEY NOT NULL AUTO_INCREMENT,
name TEXT NOT NULL,
);
这是我的
Cargo.toml
:
[package]
name = "budget"
version = "0.1.0"
edition = "2021"
[dependencies]
chrono = { version = "0.4.24", features = ["serde"] }
rocket = { version = "0.5.0", features = ["json"] }
diesel = { version = "2.1.0", features = ["mysql", "chrono"] }
diesel_migrations = "2.1.0"
dotenvy = "0.15"
rocket_db_pools = { version = "0.1.0", features = ["diesel_mysql"] }
我对 Rust 很陌生,即使有人能指出我正确的方向,我也会很感激。我目前不知道从哪里开始寻找根本问题。我可以根据需要提供更多信息。
我设法解决了问题:
MYSQLCLIENT_LIB_DIR
环境变量更改为指向C:\Program Files\MySQL\MySQL Server 8.0\lib
diesel_cli
和 --no-default-features
标志重新安装了 --features "mysql"
之后,运行
diesel setup
和 diesel migration run/redo/revert
就成功了。