概要
RailsアプリのローカルDBで使用しているMySQLバージョンを5.6から5.7に上げる時ハマったので備忘録。
バージョン
手順
MySQLのバージョンを上げる
brew uninstall mysql@5.6
brew install mysql@5.7
mysql.server restart
などを行った後、
bin/rails db
でDB接続を試みると、
(中略) dlopen(/Users/{ユーザー名}/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle, 0x0009): Library not loaded: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib (LoadError) Referenced from: /Users/{ユーザー名}/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle Reason: tried: '/usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib' (no such file), '/usr/local/lib/libmysqlclient.18.dylib' (no such file), '/usr/lib/libmysqlclient.18.dylib' (no such file) - /Users/{ユーザー名}/.rbenv/versions/2.7.5/lib/ruby/gems/2.7.0/gems/mysql2-0.5.3/lib/mysql2/mysql2.bundle
のエラー発生。
Reason: tried: '/usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib' (no such file)
と言われても、もうMySQL5.6はアンインストールしてるんですが?という感じ。
ファイルも、当然存在しない。
$ ls /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib ls: /usr/local/opt/mysql@5.6/lib/libmysqlclient.18.dylib: No such file or directory
MySQLの場所を確認
brew info mysql@5.7
すると、以下のようなものが出力される。
==> mysql@5.7: stable 5.7.39 (bottled) [keg-only] Open source relational database management system https://dev.mysql.com/doc/refman/5.7/en/ /usr/local/Cellar/mysql@5.7/5.7.39 (320 files, 233.6MB) Poured from bottle on 2022-10-27 at 23:41:25 From: https://github.com/Homebrew/homebrew-core/blob/HEAD/Formula/mysql@5.7.rb License: GPL-2.0-only ==> Dependencies (中略)
mysql@5.7はどこにいるかというと、ここ/usr/local/Cellar/mysql@5.7/5.7.39
。
シンボリックリンク貼る
sudo ln -s /usr/local/Cellar/mysql@5.7/5.7.39/lib/libmysqlclient.dylib /usr/local/lib/libmysqlclient.18.dylib
これで解決した。