macOS Sonoma Beta下Ruby2.5.1运行Rails Server遇libmysqlclient加载错误求助
解决macOS Sonoma Beta下Ruby 2.5.1 + mysql2-0.5.3的LoadError问题
问题场景
环境:Ruby 2.5.1、macOS Sonoma Beta
执行rails server时触发错误:
/.rvm/gems/ruby-2.5.1/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle, 0x0009): Library not loaded: /usr/local/opt/mysql/lib/libmysqlclient.21.dylib (LoadError)
解决方案
重新编译mysql2 gem并指定MySQL配置路径
错误大多源于mysql2 gem编译时找不到对应版本的MySQL库,先卸载现有gem再重新安装:gem uninstall mysql2 gem install mysql2 -v 0.5.3 -- --with-mysql-config=/usr/local/opt/mysql/bin/mysql_config若使用MySQL官方安装包而非brew,将路径替换为
/usr/local/mysql/bin/mysql_config即可。创建软链接修复库路径
若系统中存在libmysqlclient.21.dylib但路径不匹配,先定位它的实际位置:find /usr/local -name libmysqlclient.21.dylib假设找到的路径是
/usr/local/mysql/lib/libmysqlclient.21.dylib,创建软链接到错误提示的路径:sudo ln -s /usr/local/mysql/lib/libmysqlclient.21.dylib /usr/local/opt/mysql/lib/libmysqlclient.21.dylib安装兼容版本的MySQL
mysql2-0.5.3依赖的libmysqlclient.21.dylib属于MySQL 8.0.x版本,若当前MySQL版本过高(如8.1+),可安装兼容版本:brew install mysql@8.0 echo 'export PATH="/usr/local/opt/mysql@8.0/bin:$PATH"' >> ~/.zshrc source ~/.zshrc完成后重新执行mysql2 gem安装命令。
内容的提问来源于stack exchange,提问作者Nazar Fedishin
相关产品推荐
相关产品推荐

