解決!LoadError: cannot load such file — mysql2/2.6/mysql2

現在windows10環境でRuby on Rails+MySQLの環境を構築しています。
MySQLは元々入れていたので、それ以外の環境を構築しDB作成コマンドをいれた所
————————————–
rake db:create
————————————–

LoadError: cannot load such file — mysql2/2.6/mysql2
が表示されてしまいました。
何このエラー?と色々調べたけれどわからなくて苦労したので
下記に備忘録を残そうと思います。

1.Rubyのインストール

————————————–
ruby -v
————————————–
×ruby 2.7.1p83 (2020-03-31 revision a0c7c23c9c) [x64-mingw32]
〇ruby 2.6.6p146 (2020-03-31 revision 67876) [x64-mingw32]

最初2.7を入れていたんだけど後に問題があって2.6に変更しました。

2.Ruby実行

実行
————————————–
ruby hello.rb
————————————–
このコマンドで実行されるのを確認

3.Railsのインストール

インストール
————————————–
gem install rails
————————————–

バージョン確認
————————————–
rails -v
————————————–
Rails 6.0.3.3

4.mysql2

mysql-connectorのZIPファイルをダウンロードしてCドライブに

コマンド
————————————–
gem install mysql2
————————————–

Fetching mysql2-0.5.3-x64-mingw32.gem
ERROR: Error installing mysql2:
The last version of mysql2 (>= 0) to support your Ruby & RubyGems was 0.5.3. Try installing it with `gem install mysql2 -v 0.5.3`
mysql2 requires Ruby version >= 2.2, < 2.7.dev. The current ruby version is 2.7.1.83.
エラー:mysql2のインストール中にエラーが発生しました:
RubyとRubyGemsをサポートするmysql2の最後のバージョン(> = 0)は0.5.3でした。
`gem install mysql2 -v0.5.3`でインストールしてみてください
mysql2にはRubyバージョン> = 2.2、<2.7.devが必要です。現在のルビーバージョンは2.7.1.83です。

→ということでrubyのバージョンを2.6にしました。
そのあともう一度実行したらエラーなくなりました。

————————————–
gem list mysql2
————————————–
→バージョンをメモしておきます

5.アプリ作成

#アプリ作成
————————————–
rails new testapp -d mysql
————————————–
このコマンドはプロジェクト作成したいディレクトリに移動してから実行します。
プロジェクトファイルが作成されました。

6.Gemfileの作成

Gemfileの作成
————————————–
bundle init
————————————–
プロジェクトのホームディレクトリにて
上記実行するとGemfileという雛形ファイルが作成されます

Gemfileを開いてrubyのバージョンとmysql2のバージョンを修正します。

————————————–
bundle install –path vendor/bundle
————————————–
→この辺はLaravelに似ている感じ。

7.DB作成

ホーム\testapp\config\database.yml
→DB設定を変更する

————————————–
rake db:create
————————————–

これを実行するとずっと
LoadError: cannot load such file — mysql2/2.6/mysql2

のエラーが出ていました。

エラーが出たので色々試行錯誤して何とか無事にDBがMySQLに自動生成されました!!
Gemfileの下記を修正したら解決しました。

gem ‘mysql2’, ‘>= 0.4.4’→gem ‘mysql2’, ‘>= 0.5.3’

————————————–
bundle install
————————————–

\\testapp\vendor\bundle\ruby\2.6.0\gems\mysql2-0.4.10-x64-mingw32
\\testapp\vendor\bundle\ruby\2.6.0\gems\mysql2-0.5.3-x64-mingw32

新たに下の0.5.3のフォルダが出来ていました。

gem list mysql2のバージョンが揃えばいけるのではと思いました。
とりあえず今日はここまで。

コメント

タイトルとURLをコピーしました