mysql でミリ秒を表示するユーザ定義関数を使ってみる修行

PHP, Perl, C++ with Qt などなどから構成される複合的なシステムを作っている。各プログラム内での処理開始時刻、終了時刻を知り、どこで時間がかかっているのかをしりたい。PHP, Perl, C++ それぞれがミリ秒単位の時刻をつけてログに吐くのでもいいのだが、できればプログラム内から参照できたほうがよい。

ということで、DB に書き込めばいいんじゃないか、でも MySQL は秒単位までしか扱ってくれないし。どうしよう。

MySQL ミリ秒」でぐぐって見つけた mysqlに独自関数を組み込む(UDF) - download_takeshi’s diary がやりたいことが書かれていた。
ので、書いてみたのだが、

mysql> CREATE FUNCTION msec RETURNS STRING SONAME 'msec.so';
ERROR 1126 (HY000): Can't open shared library 'msec.so' (errno: 22 /usr/lib64/mysql/plugin/msec.so: cannot open shared object file: No such file or directory)

と怒られてしまう。
/usr/lib/mysql/msec.so を /usr/lib/msec.so に置いたり、/etc/init.d/mysql を編集してライブラリのパスを書いたり、/etc/ld.conf.d/msec.so を設定したり、といろいろやってみたんだが、うまくいかず。
2010-08-27 を見たら、解決策が見つかった。

最初のエラーメッセージにあるように、/usr/lib64/mysql/plugin/ に置けばよかったらしい。