MySQLアップグレードでハマるの巻

昨日MySQL4.なんちゃらからMySQL5.0.37にアップグレードした。
アップグレード自体はportsでmake installしただけ。
とくに問題なく動いていたのでOKかと思って帰った。

今日来てみたら、検索がまったくできなくなってたおかげでエラーログたまりまくり。
apacheのエラーログには
PHP Fatal error: Call to undefined function: mysql_connect() …
ってのがユーザーに検索されるたびにずらーっと並んでいる状況。
phpinfoにも昨日まであったMySQLの項目がない始末。

試しにApacheを再起動すると、エラーログには
PHP Warning: Unknown(): Unable to load dynamic library '/usr/local/lib/php/extentions/mysql.so' - Shared object "libmysqlclient.so.14" not found, required by "mysql.so" in Unknown on line 0
ってのが吐き出されているので、libmysqlclient.so.14ってのがなくてmysqlのエクステンションがうまくロードできてない模様。

ぐぐったりなんだりしてるうちにPHPのバグでmysql5にバージョンアップしても
mysql4のファイルを読みに行ってるようなことをどっかの外人さんが書いていた。

対処法

シンボリックリンクで、libmysqlclient.so.14をlibmysqlclient.soに向けるのみ。

# cd/usr/local/lib/mysql
# ln -s libmysqlclient.so libmysqlclient.so.14

これでOK

ちなみに ls -la してみるとこんな感じ。

lrwxr-xr-x 1 root wheel 20 Mar 10 05:17 libmysqlclient.so -> libmysqlclient.so.15
lrwxr-xr-x 1 root wheel 17 Mar 10 08:37 libmysqlclient.so.14 -> libmysqlclient.so
-rwxr-xr-x 1 root wheel 415293 Mar 10 05:17 libmysqlclient.so.15