Rails+MySql→Rails+MariaDBで、mysql2 Gemでエラー出る問題
Spiderエンジンとかその辺の検証をするために、開発で使ってたMySQLをMariaDBに変更した時の話。
Spiderエンジンについては、開発者の方のスライドを見ていただければ。
要は、シャーディングをアプリではなくDB側で解決させてしまおう、というコンセプトのシロモノ。
まあ、このへんはある程度検証できたら、まとめるので今回は置いておく(`・ω・´)
問題は表題の通り。環境は、Rails4.0.8 + Ruby 2.1.1。
すでに入っていた Mysql 5.6をbrew uninstall mysql
で削除した後、brew install mariadb
する。おもむろにmysql.server start
ローカルオンリーのため、テキトーにrootで。
mysql起動させたので、rake db:migrate && rake db:seedやるとこんなエラーが発生しました。
rake aborted! Incorrect MySQL client library version! This gem was compiled for 5.6.20 but the client library is 10.0.13-MariaDB. ./config/application.rb:7:in `<top (required)>' ./Rakefile:4:in `<top (required)>' (See full trace by running task with --trace)
どうやら、SQLクライアントのmysql2のGemが、導入したMariaDBには対応していなかった模様(´・ω・`)
gem uninstall mysql2
後、 再度、gem install mysql2
なり、bundle install
実行で、mysql2入れなおすと、エラーが解消しました。
導入されているDBによって、Gemの自動判別とかやってくれてるんですかね。