DB

mysqlがインストールできない

Rails で開発をしていると、mysqlがインストールできないといったエラーに悩まされることが多いと思います。

以下のエラーが出たときの対処法になります。

An error occurred while installing mysql2 (0.5.3), and Bundler cannot continue.
Make sure that `gem install mysql2 -v '0.5.3' --source 'https://rubygems.org/'` succeeds before bundling.

In Gemfile:
mysql2

このとき、エラー文の中に ld: library not found for -lssl があれば今回の記事の通りにやれば解決できると思います!

エラーの原因

エラー文にある通り、openssl のパスが見つからないことです。

エラーの解決方法

まずは brew info openssl でパスを探します。

$ brew info openssl
==> openssl@3: stable 3.2.0 (bottled)
Cryptography and SSL/TLS Toolkit

/opt/homebrew/Cellar/openssl@3/3.2.0_1 (6,805 files, 31.9MB) *
  Poured from bottle using the formulae.brew.sh API on 2023-12-19 at 09:56:54
From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/o/openssl@3.rb
License: Apache-2.0
==> Dependencies
Required: ca-certificates ✘
==> Caveats
A CA file has been bootstrapped using certificates from the system
keychain. To add additional certificates, place .pem files in
  /opt/homebrew/etc/openssl@3/certs

and run
  /opt/homebrew/opt/openssl@3/bin/c_rehash
==> Analytics
install: 494,281 (30 days), 1,384,856 (90 days), 3,017,484 (365 days)
install-on-request: 77,063 (30 days), 199,175 (90 days), 500,713 (365 days)
build-error: 4,702 (30 days)

ここからパスが /opt/homebrew/Cellar/openssl@3/3.2.0_1 であることが分かります。

これで以下のコマンドを入力することで、mysql2 Gem のビルドの設定を更新することができます。(パスの部分を brew info の情報で得られたパスと置き換えてください。)

bundle config --local build.mysql2 "--with-ldflags=-L/opt/homebrew/Cellar/openssl@3/3.2.0_1/lib --with-cppflags=-I/opt/homebrew/Cellar/openssl@3/3.2.0_1/include"

これで、mysql2 が無事にインストールされたら完了です。

ABOUT ME
sakai
東京在住の30歳。元々は車部品メーカーで働いていてましたが、プログラミングに興味を持ちスクールに通ってエンジニアになりました。 そこからベンチャー → メガベンチャー → 個人事業主になりました。 最近は生成 AI 関連の業務を中心にやっています。 ヒカルチャンネル(Youtube)とワンピースが大好きです!