libmysqlを利用したコンパイルについて

PHPなどでmysqlを組み込むときに、libmysqlclientが必要になります。

mysqlをRPM、PHPをソースで入れた場合などに入れたはずのライブラリが見つからないことがあります。

いくつかの対応方法をあげておきます。

・ ln -s /usr/lib64/libmysqlclient.so /usr/lib64/mysql/libmysqlclient.so

・これはライブラリをサーチするパス上にないときにリンクを貼る方法

・echo “/usr/hoge/foo” >> /etc/ld.so.conf ; ldconfig

・特定のディレクトリにインストールした、必要なライブラリがシステムに認識されていない時に、実行します。

・32bit環境で構築していたミドルウェアを、64bitで動かすときには–with-libdir=lib64 などの、コンパイルオプションもあります。

 

またハマッタ。こんなメモ書きもしてました。

#ライブラリのパスがphpが探すところと違う(MySQLをソースから入れた場合)

#そのためヘッダファイルやライブラリファイルのシンボリックリンクを貼らないと動かない。

ln -s /usr/local/mysql/lib /usr/local/mysql/lib64ln -s /usr/local/mysql/include/mysql/mysql.h /usr/local/mysql/include/mysql.hln -s /usr/local/mysql/lib/mysql/libmysqlclient.so /usr/local/mysql/lib/libmysqlclient.soln -s /usr/local/mysql/lib/mysql/libmysqlclient.so.12 /usr/local/mysql/lib/libmysqlclient.so.12

また、makeのときのエラーの対処でこんなこともしていました。
make ZEND_EXTRA_LIBS=’-liconv’

mysql5.5のパッケージを本家から落としてきて、phpはソースから入れたときの対処は以下。

ln -s  /usr/lib64/libmysqlclient.so.16.0.0 /usr/lib64/libmysqlclient.so

libmysqlqlient.soファイルがデフォでは作られないのかしら。

シンボリックリンクでも、cpでもいいと思います。

 

Comments are closed.