brew更新MySQL后Rails本地服务器无法启动的解决求助
修复MySQL升级后Rails无法启动的mysql2依赖问题
问题原因
MySQL从8.0.x版本升级到8.3.0后,动态链接库libmysqlclient的版本从22更新为23,而你当前使用的mysql2-0.5.4 gem是基于旧版本库编译的,导致启动Rails时找不到指定的libmysqlclient.22.dylib文件。
解决方案
1. 重新编译指定MySQL路径的mysql2 gem
先卸载已安装的mysql2 gem:
gem uninstall mysql2
然后指定brew安装的MySQL配置文件路径,重新安装对应版本的gem:
gem install mysql2 -v 0.5.4 -- --with-mysql-config=/opt/homebrew/opt/mysql/bin/mysql_config
2. 通过Bundler重新配置并安装
如果你的项目使用Bundler管理依赖,执行以下步骤:
- 卸载项目依赖的mysql2 gem:
bundle exec gem uninstall mysql2
- 配置Bundler编译mysql2时使用指定的MySQL路径:
bundle config set --local build.mysql2 "--with-mysql-config=/opt/homebrew/opt/mysql/bin/mysql_config"
- 重新安装项目依赖:
bundle install
3. 临时软链接方案(不推荐长期使用)
如果需要快速恢复服务,可以创建旧版本库的软链接指向新版本:
sudo ln -s /opt/homebrew/opt/mysql/lib/libmysqlclient.23.dylib /opt/homebrew/opt/mysql/lib/libmysqlclient.22.dylib
注意:此方法仅为临时应急,后续MySQL再次升级时仍会出现类似问题,建议优先使用前两种编译方案。
额外检查
确保当前终端使用的Ruby版本是3.1.2,执行以下命令确认:
rbenv version
如果不是,切换到对应版本:
rbenv local 3.1.2
内容的提问来源于stack exchange,提问作者Jack
相关产品推荐
相关产品推荐

