version libmysqlclient_18 not defined in file libmysqlclient.so.18 with link time reference

インターネットのお仕事していて、サーバのリリース後は監視がメインになりやすいです。

Zabbixという監視システムを使用しているのですが、proxy機能を使用することで遠隔の別ネットワークの監視をしたりすることもあります。

そのzabbix_proxyをCentOS5のシステムにインストール中、以下のエラーに遭遇しました。

28034:20130114:062204.690 Starting Zabbix Proxy (active) [*****-admin]. Zabbix 2.0.5 (revision 33558).
28034:20130114:062204.690 **** Enabled features ****
28034:20130114:062204.690 SNMP monitoring: YES
28034:20130114:062204.690 IPMI monitoring: NO
28034:20130114:062204.690 WEB monitoring: YES
28034:20130114:062204.690 ODBC: NO
28034:20130114:062204.690 SSH2 support: NO
28034:20130114:062204.690 IPv6 support: NO
28034:20130114:062204.690 **************************
/usr/local/sbin/zabbix_proxy: relocation error: /usr/local/sbin/zabbix_proxy: symbol mysql_init, version libmysqlclient_18 not defined in file libmysqlclient.so.18 with link time reference

うーーん。どうも、libmysqlclient.so.18がおかしいようです。じつはデータベースでは一般的なMySQLを使用していたのですがMySQLClusterというちょっと変わったクラスタモデルを使用している関係でCentOS標準でなくOracleよりリリースされているパッケージを利用していました。どうも、このパッケージ付属のlibmysqlclient.so.18を使用してzabbix関連のプログラムを作成するとこうなってしまったようです。/usr/local側のファイルを見ないように、

configure する際に、–with-mysql=/usr/lib64/mysql/mysql_config とすることで回避できました。