「rake db:migrate」実行時に「dyld: Symbol not found: _mysql2_set_field_string_encoding」というエラーが発生 → 解決

とあるRailsアプリの開発中に、「rake db:migrate」コマンドを実行したところ、以下のエラーが発生しました。(当方の環境は、Mac OS X 10.7.2、Ruby 1.9.2-p290、Rails 3.1.0)

MySQLデータベースに接続できてないようです。mysql2の不具合?

パッと見で原因がわからなかったので調べてみたところ、同じ問題で悩んでいる人を見つけました。

#216: Symbol not found: _mysql2_set_field_string_encoding – Issues – brianmario/mysql2 – GitHub

どうやら、mysql2とXcode 4.2との相性が悪いらしく、ライブラリが正しくコンパイルできてないみたいです。

上記ページを参考にしてGemfileを以下の用に修正することで、正常にデータベースに接続できるようになりました。

めでたしめでたし。