symbol not found in flat namespace '_mysql_affected_rows' が発生した時
前提
現象
bundle install
は正常に実行できたが、./bin/rails s
などのRailsコマンドを実行すると以下のようなエラーとなる。
※抜粋
$ ./bin/rails s /Users/foo/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/gems/bootsnap-1.11.1/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:30:in `require': dlopen(/Users/foo/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/gems/mysql2-0.5.4/lib/mysql2/mysql2.bundle, 0x0009): symbol not found in flat namespace '_mysql_affected_rows' - /Users/foo/.rbenv/versions/3.1.1/lib/ruby/gems/3.1.0/gems/mysql2-0.5.4/lib/mysql2/mysql2.bundle (LoadError)
おそらく、homebrewでinstallしたmysqlのパスがmysql2のデフォルトと異なるため?
解決方法
$ gem uninstall mysql2 $ gem install mysql2 --with-mysql-dir=/opt/homebrew/Cellar/mysql/8.0.29
これで解消した。