You need to enable JavaScript to run this app.
最新活动
大模型
产品
解决方案
定价
生态与合作
支持与服务
开发者
了解我们

MacOS下安装mysqlclient及Diesel CLI安装报错问题求助

解决 cargo install diesel_cli 时的 -lmysqlclient 链接错误

这个问题我见得太多了——本质就是你的系统缺少MySQL客户端的开发库,Diesel CLI在编译MySQL相关功能时需要这个库来完成链接。下面是不同操作系统下的具体安装步骤,照着做就能搞定:

macOS(使用Homebrew)

  • 先把Homebrew更新到最新版本:
    brew update
    
  • 安装MySQL客户端开发库:
    brew install mysql-client
    
  • 安装完成后,需要让编译器能找到这个库的位置,执行以下命令(建议把这两行加到你的shell配置文件里,比如~/.zshrc~/.bash_profile,这样下次打开终端就不用再设置了):
    export LIBRARY_PATH=$(brew --prefix mysql-client)/lib
    export CPATH=$(brew --prefix mysql-client)/include
    
  • 最后重新运行安装命令,明确指定MySQL特性(避免默认特性带来的冲突):
    cargo install diesel_cli --no-default-features --features mysql
    

Ubuntu/Debian 系列 Linux

  • 先更新软件包索引:
    sudo apt update
    
  • 安装MySQL开发库:
    sudo apt install libmysqlclient-dev
    
  • 直接重新执行Diesel CLI的安装命令即可:
    cargo install diesel_cli --no-default-features --features mysql
    

CentOS/RHEL 系列 Linux

  • 如果你用的是官方MySQL源,安装对应的开发库:
    sudo yum install mysql-community-devel
    
  • 要是用MariaDB替代MySQL,就安装MariaDB的开发库:
    sudo yum install mariadb-devel
    
  • 之后重新运行安装命令:
    cargo install diesel_cli --no-default-features --features mysql
    

额外提示

如果安装完还是报错,试试重启终端确保环境变量生效(尤其是macOS环境)。另外,如果你不需要MySQL支持,也可以只安装你需要的数据库特性,比如PostgreSQL或SQLite:

# PostgreSQL 版本
cargo install diesel_cli --no-default-features --features postgresql
# SQLite 版本
cargo install diesel_cli --no-default-features --features sqlite

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

火山引擎 最新活动