読者です 読者をやめる 読者になる 読者になる

無気力生活 (ノ ´ω`)ノ ~゜

脱力系エンジニア。てきとーに生きてます。

Rails+MySql→Rails+MariaDBで、mysql2 Gemでエラー出る問題

Spiderエンジンとかその辺の検証をするために、開発で使ってたMySQLMariaDBに変更した時の話。

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の自動判別とかやってくれてるんですかね。