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

Ruby on Rails中安装mysql2 gem失败的问题求助

解决Ruby on Rails环境下gem install mysql2安装失败问题

环境信息

  • Ruby版本:ruby 3.1.3p185 (2022-11-24 revision 1a6b16756e) [x64-mingw-ucrt]
  • Rails版本:Rails 7.0.4
  • 已安装MySQL社区版,且将libmysql.dll放置在C:\Ruby31-x64\bin目录下

安装错误详情

执行gem install mysql2时触发原生扩展构建失败,核心错误日志如下:

错误:安装mysql2失败:错误:无法构建gem原生扩展。
当前目录: C:/Ruby31-x64/lib/ruby/gems/3.1.0/gems/mysql2-0.5.4/ext/mysql2
C:/Ruby31-x64/bin/ruby.exe -I C:/Ruby31-x64/lib/ruby/3.1.0 extconf.rb
检查rb_absint_size()... 是 检查rb_absint_singlebit_p()... 是 检查rb_wait_for_single_fd()... 是 检查ruby.h中的rb_enc_interned_str()... 是
*** extconf.rb 执行失败 *** 无法创建Makefile,可能是缺少必要的库和/或头文件。请查看mkmf.log文件获取更多详情,您可能需要配置选项。

C:/Ruby31-x64/lib/ruby/3.1.0/mkmf.rb:1083:in `block in find_library': undefined method `split' for nil:NilClass (NoMethodError)
paths = paths.flat_map {|path| path.split(File::PATH_SEPARATOR)}
                                   ^^^^^^
    from C:/Ruby31-x64/lib/ruby/3.1.0/mkmf.rb:1083:in `each'
    from C:/Ruby31-x64/lib/ruby/3.1.0/mkmf.rb:1083:in `flat_map'
    from C:/Ruby31-x64/lib/ruby/3.1.0/mkmf.rb:1083:in `find_library'
    from extconf.rb:103:in `<main>'

解决方法

  • 指定MySQL安装路径重新安装
    执行gem安装命令时,显式指定MySQL的include和lib目录路径(替换为你的实际MySQL安装目录):

    gem install mysql2 --platform=ruby -- '--with-mysql-dir="C:/Program Files/MySQL/MySQL Server 8.0" --with-mysql-lib="C:/Program Files/MySQL/MySQL Server 8.0/lib" --with-mysql-include="C:/Program Files/MySQL/MySQL Server 8.0/include"'
    
  • 升级mysql2 gem版本
    旧版本mysql2(如0.5.4)与Ruby 3.1.x兼容性较差,尝试安装兼容版本:

    gem install mysql2 -v 0.5.5
    
  • 配置环境变量与文件路径

    • 将MySQL的bin目录(如C:\Program Files\MySQL\MySQL Server 8.0\bin)添加到系统PATH环境变量
    • 确保libmysql.dll同时存在于Ruby的C:\Ruby31-x64\bin目录和MySQL的bin目录中
  • 安装MSYS2编译依赖
    打开UCRT64终端(MSYS2),安装必要的编译工具和连接器:

    pacman -S mingw-w64-ucrt-x86_64-gcc mingw-w64-ucrt-x86_64-mariadb-connector-c
    

    安装完成后重新执行gem install mysql2命令。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.09 18:00:54