ちょっと必要性の問題でひとつのプログラムから同時に2つのDBへ接続するテストを行いました。
ソースはこちら(クラスで使ったほうが楽になるのでC++版のみです。)
mysql_cxx20060520-1
コンパイルした後、実行したらFreeBSDだとライブラリが見つからないとエラー、初期のソースを組んだ後PHPのインストールと設定などで一度reboot掛けていたのでldconfigの効果が消えていたっぽい。
ldconfig -m /usr/local/mysql/lib/mysql
Linuxだと/etc/ld.so.confに書けば済むはず(こっちはreboot掛けたことない)なのに、FreeBSDには該当ファイルなし。findで探したら/usr/compat/linux/etc/ld.so.confに見つかったが編集してreboot掛けても意味なし。/etc/ld.so.confにコピーしてrebootしてもダメ。
結局、.loginに
if ($?LD_LIBRARY_PATH) then
setenv LD_LIBRARY_PATH “${LD_LIBRARY_PATH}:${MYLIB}”
else
setenv LD_LIBRARY_PATH “${MYLIB}”
endif
と追加して解決。
DBクライアントは他のユーザーでも使用するかも知れないから/etc/profileに書いたほうがいいかなー?