2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?

M1 Macでmysql2がインストールできない時の対処法

Posted at

久しぶりにローカル環境でRailsを構築した際にエラーが出たので対処法をまとめます。

使用環境

  • Apple M1
  • ruby 3.1.2

エラー文

bundle installをするとmysql2のビルドエラーが出ました。

Fetching gem metadata from https://rubygems.org/.........
Resolving dependencies...
Installing mysql2 0.5.6 with native extensions
Gem::Ext::BuildError: ERROR: Failed to build gem native extension.

...
中略
...

Using mysql_config at /opt/homebrew/bin/mysql_config
-----
checking for mysql.h... yes
checking for errmsg.h... yes
checking for SSL_MODE_DISABLED in mysql.h... yes
checking for SSL_MODE_PREFERRED in mysql.h... yes
checking for SSL_MODE_REQUIRED in mysql.h... yes
checking for SSL_MODE_VERIFY_CA in mysql.h... yes
checking for SSL_MODE_VERIFY_IDENTITY in mysql.h... yes
checking for MYSQL.net.vio in mysql.h... yes
checking for MYSQL.net.pvio in mysql.h... no
checking for MYSQL_DEFAULT_AUTH in mysql.h... yes
checking for MYSQL_ENABLE_CLEARTEXT_PLUGIN in mysql.h... yes
checking for SERVER_QUERY_NO_GOOD_INDEX_USED in mysql.h... yes
checking for SERVER_QUERY_NO_INDEX_USED in mysql.h... yes
checking for SERVER_QUERY_WAS_SLOW in mysql.h... yes
checking for MYSQL_OPTION_MULTI_STATEMENTS_ON in mysql.h... yes
checking for MYSQL_OPTION_MULTI_STATEMENTS_OFF in mysql.h... yes
checking for my_bool in mysql.h... no
checking for mysql_ssl_set() in mysql.h... no
-----
Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load
-----
-----
Setting libpath to /opt/homebrew/Cellar/mysql/8.3.0_1/lib
-----
creating Makefile

...
中略
...

An error occurred while installing mysql2 (0.5.6), and Bundler cannot continue.

In Gemfile:
  mysql2

原因

MySQLのヘッダーファイルとライブラリの環境変数が設定できていなかったため。

Don't know how to set rpath on your system, if MySQL libraries are not in path mysql2 may not load
というメッセージは、システム上でMySQLのライブラリへのパスを設定する方法が不明であるとのことです。

対処法

mysqlの正しいパスを設定します。

MySQLのパスを確認

正しい場合は次のように出てきます。

$ which mysql
/opt/homebrew/bin/mysql

MySQLのヘッダーファイルとライブラリの環境変数を確認

正しい場合は次のように出てきます。
自分はここが設定できていませんでした。

$ echo $LIBRARY_PATH
/opt/homebrew/lib
$ echo $CPATH
/opt/homebrew/include

環境変数を更新する

もしパスが含まれていない場合は、以下のコマンドを実行して環境変数を更新しましょう。

$ echo 'export PATH="/opt/homebrew/bin:$PATH"' >> ~/.bash_profile
$ echo 'export LIBRARY_PATH="/opt/homebrew/lib:$LIBRARY_PATH"' >> ~/.bash_profile
$ echo 'export CPATH="/opt/homebrew/include:$CPATH"' >> ~/.bash_profile

bash_profileを読み込む

$ source ~/.bash_profile

以上により、解決しました。

参考

こちらは事前にやった対応です。
今回の原因とは違いますが、こちらを事前に行いました。

2
0
0

Register as a new user and use Qiita more conveniently

  1. You get articles that match your needs
  2. You can efficiently read back useful information
  3. You can use dark theme
What you can do with signing up
2
0

Delete article

Deleted articles cannot be recovered.

Draft of this article would be also deleted.

Are you sure you want to delete this article?