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

Rails执行rails db:create报错:LoadError: cannot load such file -- mysql2/mysql2

Rails执行rails db:create时mysql2加载失败的解决方法

问题背景

基于Rails 5.0.2、Ruby 2.5.8开发应用,使用mysql2 0.4.10,已安装MySQL 8稳定版(macOS Monterey 12),执行rails db:create时抛出如下错误:

rails aborted!
LoadError: cannot load such file -- mysql2/mysql2
/.rvm/gems/ruby-2.5.8/gems/mysql2-0.4.10/lib/mysql2.rb:31:in `require'
/.rvm/gems/ruby-2.5.8/gems/mysql2-0.4.10/lib/mysql2.rb:31:in `<top (required)>'
/config/application.rb:7:in `<top (required)>'
/Rakefile:5:in `require'
/Rakefile:5:in `<top (required)>'
/.rvm/gems/ruby-2.5.8/gems/railties-5.0.2/lib/rails/commands/rake_proxy.rb:13:in `block in run_rake_task'
/.rvm/gems/ruby-2.5.8/gems/railties-5.0.2/lib/rails/commands/rake_proxy.rb:11:in `run_rake_task'
/.rvm/gems/ruby-2.5.8/gems/railties-5.0.2/lib/rails/commands/commands_tasks.rb:51:in `run_command!'
/.rvm/gems/ruby-2.5.8/gems/railties-5.0.2/lib/rails/commands.rb:18:in `<top (required)>'
script/rails:6:in `require'
script/rails:6:in `<main>'

解决步骤

这个问题主要是mysql2 0.4.10与MySQL 8的兼容性、库路径不匹配导致的,按以下操作逐一排查:

1. 卸载现有mysql2 gem

先彻底移除当前安装的mysql2版本:

gem uninstall mysql2

提示选择版本时,选中0.4.10卸载。

2. 指定MySQL路径重新安装mysql2

mysql2 0.4.10需要手动指定MySQL 8的库和配置路径才能正常编译,执行以下命令:

gem install mysql2 -v 0.4.10 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config --with-ldflags=-L/usr/local/mysql/lib --with-cppflags=-I/usr/local/mysql/include
  • 如果你用Homebrew安装MySQL,Intel芯片路径是/usr/local/bin/mysql_config,Apple Silicon芯片是/opt/homebrew/bin/mysql_config,根据自己的芯片类型替换路径。

3. 修正database.yml配置

确保config/database.yml适配MySQL 8的认证方式,参考配置如下:

default: &default
  adapter: mysql2
  encoding: utf8mb4
  pool: <%= ENV.fetch("RAILS_MAX_THREADS") { 5 } %>
  username: root
  password: 你的MySQL密码
  host: localhost
  socket: /tmp/mysql.sock

development:
  <<: *default
  database: 你的应用名_development

test:
  <<: *default
  database: 你的应用名_test

4. 重新绑定依赖并创建数据库

回到项目目录,执行:

bundle install
rails db:create

5. RVM环境检查(如果用RVM管理Ruby)

确认当前使用的Ruby版本和gemset正确:

rvm use ruby-2.5.8@你的应用gemset名 --create

重复步骤2和4重新安装依赖。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.06.26 17:42:07