Mysql2 在 mac m1 中启动 rails 服务器时出错

Mysql2 error in starting rails server in mac m1

我已经使用以下命令在 mac m1 中安装了 mysql2

gem uninstall mysql2
gem install mysql2 -v '0.3.21' -- --srcdir=/usr/local/Cellar/mysql/8.0.28_1/bin/include --with-mysql-include=/usr/local/Cellar/mysql/8.0.28_1/include/mysql --with-mysql-lib=/usr/local/Cellar/mysql/8.0.28_1/lib --with-cppflags=-I/usr/local/opt/openssl@1.0/include --with-opt-dir=/usr/local/opt/openssl@1.0 --platform=ruby

安装正常,但是当我开始 rails s 时,出现以下错误

/gems/mysql2-0.3.21/lib/mysql2.rb:31:in `require': cannot load such file -- mysql2/mysql2 (LoadError)

我正在使用 Rails 3.2.22.5ruby 2.3.0p0 (2015-12-25 revision 53290) [x86_64-darwin21]

我将 openssl 降级为 1.0 以使用 rosetta

安装 ruby 2.3.0

我已经使用 brew install mysql 安装了 mysql8。

以上在我的另一个项目中工作,该项目是 Rails 4.2 和 Ruby 2.3.1 上的 运行,但不知道为什么它在这里不起作用。

我还尝试将 mysql8 降级到 5.7,然后使用下面的

安装 mysql2
gem install mysql2 -v 0.3.21 -- --with-mysql-config=/usr/local/Cellar/mysql@5.7/5.7.37/bin/mysql_config --srcdir=/usr/local/Cellar/mysql@5.7/5.7.37/bin/include --with-ldflags=-L/usr/local/opt/mysql@5.7/lib --with-cppflags=-I/usr/local/opt/mysql@5.7/include --platform=ruby

但同样的错误,安装完成但在 rails s

中出现加载错误

如能帮助解决此错误,我们将不胜感激。

我可以通过将 mysql 降级到 5.7 然后安装 mysql-client@5.7

来解决这个问题

步骤如下:

#stop mysql
brew services stop mysql

# install mysql5.7
brew install mysql@5.7

#Link mysql5.7
brew unlink mysql
brew link mysql@5.7 --force

# install mysqlclient
brew install mysql-client@5.7

#uninstall old mysql versions if already installed
gem uninstall mysql2

#install mysql2
gem install mysql2 -v 0.3.21 -- --with-mysql-config=/usr/local/bin/mysql_config --with-ldflags=-L/usr/local/Cellar/openssl@1.0/1.0.2u/lib --with-cppflags=-I/usr/local/Cellar/openssl@1.0/1.0.2u/include

试试这个方法,对我有用

brew install openssl zstd mysql

LIBRARY_PATH=$(brew --prefix zstd)/lib/:$(brew --prefix openssl)/lib/ gem install mysql2