はじめに
perlbrew x cpanm x あとはいろいろな構成でアプリを作っていたのですが、 DBD::mysqlでperl->mysql接続しようとするとこんなエラーが出ることがあります。
[Mon Oct 12 20:16:59 2015] [error] install_driver(mysql) failed: Can't load '/home/hogeperl5/perlbrew/perls/perl-5.18.4/lib/site_perl/5.18.4/x86_64-linux/auto/DBD/mysql/mysql.so' for module DBD::mysql: libmysqlclient.so.16: cannot open shared object file: No such file or directory at /home/hogeperl5/perlbrew/perls/perl-5.18.4/lib/5.18.4/x86_64-linux/DynaLoader.pm line 190, line 309. at (eval 96) line 3. Compilation failed in require at (eval 96) line 3. Perhaps a required shared library or dll isn't installed where expected at lib/hogeModule/Information.pm line 26.
そんなときの対処方
対処
対処方法はこちらを参考にさせていたきました。
http://unix.stackexchange.com/questions/82076/error-while-installing-perl-dbd-mysql
どうやらlibmysqlclient.so.16がないっぽかったのですが、locateすると出てきたのでいまいちよくわかっていません。
# locateしてみるとあるっぽい $ locate libmysqlclient.so.16 /usr/lib64/mysql/libmysqlclient.so.16 /usr/lib64/mysql/libmysqlclient.so.16.0.0 # しかし該当ディレクトリをlsすると見当たらない $ ls -al /usr/lib64/mysql/ -rw-r--r-- 1 root root 17419410 Sep 19 00:22 libmysqlclient.a lrwxrwxrwx 1 root root 20 Oct 12 20:15 libmysqlclient.so -> libmysqlclient.so.18 lrwxrwxrwx 1 root root 24 Oct 12 20:15 libmysqlclient.so.18 -> libmysqlclient.so.18.0.0 -rwxr-xr-x 1 root root 7810465 Sep 19 00:22 libmysqlclient.so.18.0.0 lrwxrwxrwx 1 root root 16 Oct 12 20:15 libmysqlclient_r.a -> libmysqlclient.a lrwxrwxrwx 1 root root 17 Oct 12 20:15 libmysqlclient_r.so -> libmysqlclient.so lrwxrwxrwx 1 root root 20 Oct 12 20:15 libmysqlclient_r.so.18 -> libmysqlclient.so.18 lrwxrwxrwx 1 root root 24 Oct 12 20:15 libmysqlclient_r.so.18.0.0 -> libmysqlclient.so.18.0.0 # とりあえず対処 $ sudo yum install perl-DBD-MySQL.x86_64 # lsで確認 $ ls -al /usr/lib64/mysql/ -rw-r--r-- 1 root root 17419410 Sep 19 00:22 libmysqlclient.a lrwxrwxrwx 1 root root 20 Oct 12 20:15 libmysqlclient.so -> libmysqlclient.so.18 lrwxrwxrwx 1 root root 24 Oct 12 20:30 libmysqlclient.so.16 -> libmysqlclient.so.16.0.0 -rwxr-xr-x 1 root root 2788228 Sep 19 00:23 libmysqlclient.so.16.0.0 lrwxrwxrwx 1 root root 24 Oct 12 20:15 libmysqlclient.so.18 -> libmysqlclient.so.18.0.0 -rwxr-xr-x 1 root root 7810465 Sep 19 00:22 libmysqlclient.so.18.0.0 lrwxrwxrwx 1 root root 16 Oct 12 20:15 libmysqlclient_r.a -> libmysqlclient.a lrwxrwxrwx 1 root root 17 Oct 12 20:15 libmysqlclient_r.so -> libmysqlclient.so lrwxrwxrwx 1 root root 26 Oct 12 20:30 libmysqlclient_r.so.16 -> libmysqlclient_r.so.16.0.0 -rwxr-xr-x 1 root root 2820538 Sep 19 00:23 libmysqlclient_r.so.16.0.0 lrwxrwxrwx 1 root root 20 Oct 12 20:15 libmysqlclient_r.so.18 -> libmysqlclient.so.18 lrwxrwxrwx 1 root root 24 Oct 12 20:15 libmysqlclient_r.so.18.0.0 -> libmysqlclient.so.18.0.0 -rw-r--r-- 1 root root 9904 Sep 19 00:21 libmysqlservices.a
おわり
とりあえず対処できちゃったのであまり調べてませんがメモ(><)