質問: gemfileをmysql2の指定で gem 'mysql2', '0.5.2'では問題ないのですが mysql2をgem 'mysql2', '0.3.18'と指定した場合に $rails s実行すると以下の表示がされます ----------------省略---------------------------- 2: from /Users//.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bootsnap-1.4.0/lib/bootsnap/load_path_cache/core_ext/kernel_require.rb:21:in `require' 1: from /Users//.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/activerecord-5.2.2/lib/active_record/connection_adapters/mysql2_adapter.rb:6:in`' /Users//.rbenv/versions/2.5.1/lib/ruby/gems/2.5.0/gems/bundler-2.0.1/lib/bundler/rubygems_integration.rb:408:in `block (2 levels) in replace_gem': Error loading the 'mysql2' Active Record adapter. Missing a gem it depends on? can't activate mysql2 (< 0.6.0, >= 0.4.4), already activated mysql2-0.3.18. Make sure all dependencies are added to Gemfile. (LoadError) エラー文から'mysql2', '0.3.18'がmysql2 (< 0.6.0, >= 0.4.4)の範囲外が原因なのはわかりますが、herokuにアップする段階で'mysql2', '0.3.18'に指定する必要があります。 憶測ですが、rubyまたはrailsのバージョンが'mysql2', '0.3.18'に対応してないことが問題のような気がします。 $ rails -v Rails 5.2.2 $ ruby -v ruby 2.5.1p57 (2018-03-29 revision 63029) [x86_64-darwin17] $ rbenv -v rbenv 1.1.1 $rails _5.2.1_ new sample -d mysql かなり長い期間ここでハマっております、解決策をご教示いただけないでしょうか? 以下は試したことです $bundle update $bundle update mysql2 $sudo bundle update $bundle install 環境 macOS10.13.6
回答: `rbenv`を使っている状態で`bundle`コマンドを`sudo`で呼び出すと`~/.rbenv`ディレクトリ内部にroot権限を持つファイルができ、正常な動作が妨げられることがあります。 一度`rbenv`を完全にアンインストールしてから再インストールを行ってはどうでしょうか。 具体的な削除方法は公式のページを参照してください。