[M1Mac]Railsのmysql2でエラーになる場合の対応(ローカルにmysqlが入っていない方向け)

M1 MacでRailsのアプリを動作させようとしてmysql2のところでエラーが出ました。

検索するとすぐにopensslをインストールしてbundle configをするという方法が出てきますが、そこまでしても解消されませんでした。

この記事の対象は以下の状態の方です。

  • opensslのインストールをしている
  • bundle configの設定をしている
  • zstdをインストールしている
  • ここまでやったけどわからーーーーーん
  • ローカルにMySQLをインストールしていない

僕の場合は以下のエラーが出ていました。

Provided configuration options:
	--with-opt-dir
	--without-opt-dir
	--with-opt-include
	--without-opt-include=${opt-dir}/include
	--with-opt-lib
	--without-opt-lib=${opt-dir}/lib
	--with-make-prog
	--without-make-prog
	--srcdir=.
	--curdir
	--ruby=/Users/xxx/.rbenv/versions/3.1.2/bin/$(RUBY_BASE_NAME)
	--with-mysql-dir
	--without-mysql-dir
	--with-mysql-include
	--without-mysql-include=${mysql-dir}/include
	--with-mysql-lib
	--without-mysql-lib=${mysql-dir}/lib
	--with-mysql-config
	--without-mysql-config
	--with-mysqlclient-dir
	--without-mysqlclient-dir
	--with-mysqlclient-include
	--without-mysqlclient-include=${mysqlclient-dir}/include
	--with-mysqlclient-lib
	--without-mysqlclient-lib=${mysqlclient-dir}/lib
	--with-mysqlclientlib
	--without-mysqlclientlib
/Users/xxx/.rbenv/versions/3.1.2/lib/ruby/3.1.0/mkmf.rb:1086:in `block in find_library': undefined method
`split' for nil:NilClass (NoMethodError)

    paths = paths.flat_map {|path| path.split(File::PATH_SEPARATOR)}
                                       ^^^^^^
	from /Users/xxx/.rbenv/versions/3.1.2/lib/ruby/3.1.0/mkmf.rb:1086:in `each'
	from /Users/xxx/.rbenv/versions/3.1.2/lib/ruby/3.1.0/mkmf.rb:1086:in `flat_map'
	from /Users/xxx/.rbenv/versions/3.1.2/lib/ruby/3.1.0/mkmf.rb:1086:in `find_library'
	from extconf.rb:103:in `<main>'

To see why this extension failed to compile, please check the mkmf.log which can be found here:

この場合、mysqlが必要なようです。

参考:https://teratail.com/questions/l3kaci3401cpxq

brew install mysql

Macに直接開発用のミドルウェアを入れたくないと思っていたので入れてなかったんですよね。

mysqlインストール後にはエラーが出ることなく進めることができました。

コメント

タイトルとURLをコピーしました