woshidan's blog

そんなことよりコードにダイブ。

mysql2のgemのインストール時にchecking for mysql_query() in -lmysqlclient... no が出ていたらC言語版のMySQLのクライアントライブラリがない

mysql2のgemをインストールするときに、

checking for mysql_query() in -lmysqlclient... no
...

のエラーが出て失敗する場合、C言語版のMySQLのクライアントライブラリがないです。

なので、たとえばMac OS X(10.11.6)の場合、

$ brew mysql

C言語版のMySQLのクライアントライブラリ(コマンドでmysqlって入れたら動きだすやつ)を入れたらインストールを進めることができます。

Macの場合は、上記のようにHomebrewを使ったり、MacPorts, MySQLインストーラを使ってインストールした場合パスの指定は不要となりますが、他のパスにすでにMySQLのクライアントが入っていてそちらを利用したい場合はオプションでそのパスを指定する必要があります。

  • --with-mysql-dir[=/path/to/mysqldir] MySQLのインストールされたパス*1
  • --with-mysql-config[=/path/to/mysql_config] MySQLにはMySQLコンパイル方法やMySQLのクライアントへの接続方法が入っている mysql_conf という設定ファイルがあって、そのパスを指定する

なお、上記の2つのオプションは一度にどちらかひとつしか使えません。

native extensionのgem苦手意識あって毎回この辺どたどたしてたんですが、めずらしくすっきりしたのでメモ!

参考

*1:ちなみに、HomebrewでインストールしたMySQLのパスは $(brew --prefix mysql) で調べられる