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

使用MySQL创建Rails项目后无法启动服务器及执行命令求助

Rails使用MySQL创建项目后启动失败及Gemfile冲突问题

问题现象

  • 用默认SQLite创建Rails项目时,rails server可正常运行,能通过http://localhost:3000访问,数据库创建无异常。
  • 用rails new [filename] -d mysql创建项目后,执行rails server、rake db:create等命令均报错:
    dyld[75423]: missing symbol called
    zsh: abort      rake db:create
    
    dyld[75560]: missing symbol called
    zsh: abort      rails server
    
  • 手动在Gemfile添加gem "mysql2"后,执行命令触发Gemfile解析错误:
    [!] There was an error parsing Gemfile: You cannot specify the same gem twice with different version requirements.You specified: mysql2 (~> 0.5.3) and mysql2 (>= 0). Bundler cannot continue.
    

解决步骤

1. 清理重复的mysql2 gem声明

用rails new -d mysql创建项目时,Rails已自动在Gemfile中添加了指定版本的mysql2(比如~> 0.5.3),无需手动重复添加。直接打开项目根目录的Gemfile,删除手动新增的gem "mysql2"行即可。

2. 重新安装适配本地MySQL的mysql2 gem

missing symbol called错误大多是mysql2 gem版本与本地MySQL版本不兼容导致的,按以下操作处理:

  • 卸载已安装的mysql2:
    gem uninstall mysql2
    
  • 重新安装时指定适配版本(以MySQL 8.x为例,推荐安装0.5.5版本),并指定本地MySQL配置路径:
    # Intel芯片Mac示例路径
    gem install mysql2 -v 0.5.5 -- --with-mysql-config=/usr/local/mysql/bin/mysql_config
    # M1/M2芯片Mac示例路径(Homebrew安装的MySQL)
    gem install mysql2 -v 0.5.5 -- --with-mysql-config=/opt/homebrew/bin/mysql_config
    

3. 更新依赖并重新初始化数据库

  • 执行bundle安装依赖:
    bundle install
    
  • 重新创建数据库:
    rails db:create
    
  • 启动服务器:
    rails server
    

额外排查点

  • 确认本地MySQL服务处于运行状态:
    # Homebrew安装的MySQL,检查运行状态
    brew services list | grep mysql
    # 若未运行则启动
    brew services start mysql
    
  • 检查config/database.yml中的用户名、密码是否与本地MySQL匹配,默认配置可能使用root用户且密码为空,若你的MySQL设置了密码,需手动修改该文件的password字段。

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

相关产品推荐
方舟 Agent Plan

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

最近更新时间:2026.08.13 00:25:19