mysql-pythonを使うときに気をつけること
MySQLを自分でコンパイルをしている場合などに、mysql-pythonを利用しようとすると、以下のような Tracebackがでることがあります。
$ python
>>> import MySQLdb
Traceback (most recent call last):
File "", line 1, in
File "/usr/lib/python2.5/site-packages/MySQL_python-1.2.3c1-py2.5-linux-i686.egg/MySQLdb/__init__.py", line 19, in
import _mysql
ImportError: libmysqlclient_r.so.15: cannot open shared object file: No such file or directory
上記のようなTracebackがでている場合は、 mysqlのライブラリが読み込めない状態になっています。
Fedora10 であれば、通常は yum から mysql-libs をインストールすれば解決します。
しかし、 Tritonnパッチが当たっているのコンパイル済み tar ball 等を利用している場合は、自分でパスを指定してあげる必要があります。
共有ライブラリを追加する手順として、
- 共有ライブラリのパスを指定したファイルを作成する
- 共有ライブラリがキャッシュされているファイルを更新する
- 反映されたか確認する
となります。
実際に、 /opt/mysqlにインストールされているTritonn-MySQLのライブラリを追加するには、
1-2. パスを追記する
2. ldconfigコマンドを利用し、キャッシュへ反映させます。
3. ldconfig -p で確認する。
- libmysqlclient_r.so.15, libmysqlclient.so.15 が追加されていれば成功です。
反映の手順 (mysql-tritonn.confへは、パスが設定済みとします)
# cat /etc/ld.so.conf.d/mysql-tritonn.conf /opt/mysql/lib # ldconfig # ldconfig -p | grep mysql libmysqlclient_r.so.15 (libc6) => /opt/mysql/lib/libmysqlclient_r.so.15 libmysqlclient.so.15 (libc6) => /opt/mysql/lib/libmysqlclient.so.15
動作確認をする
$ python
>>> import MySQLdb
Tracebackが出力されなければ、設定は成功です。
現在のポスト数 59 / 100