調べに調べてなんとか解決したので、残しておきます。
ご参考までに。
ちなみに普通にインストールしたXAMPPですので正確にはMySQLではなくMariaDBですね。
XAMPPのPerlでMySQLエラー発生
XAMPPをインストールし、環境変数にPerlとMySQLのPATHが追加されている状態が前提です。コマンドラインで
mklink /j C:\usrとやって、Perlのパスは「/usr/bin/perl」になるようにしています。
さてこれで普通にPerlは動かせるのですが、MySQLを使うスクリプトが動きません。
Software errorとなります。
エラーメッセージは下記の通り。
install_driver(mysql) failed: Can't load 'C:/usr/vendor/lib/auto/DBD/mysql/mysql.xs.dll' for module DBD::mysql: load_file:指定されたモジュールが見つかりません。 at C:/usr/lib/DynaLoader.pm line 193.
at (eval 8) line 3.
Compilation failed in require at (eval 8) line 3.
Perhaps a required shared library or dll isn't installed where expected
at ./pl/mylink_db.pl line 243.
足りないのはlibmysql__.dllだった!Strawberry Perlを利用して解決
最初はDBD::mysqlをインストールせんといかんのでは?とcpanだのなんだのやってみましたがそっちでもエラーが出て手詰まり。調べていくとどうも
mysql.xs.dllが読めない = libmysql__.dllが足りない
という事らしい。
道理で、ちゃんとC:/usr/vendor/lib/auto/DBD/mysql/mysql.xs.dllは存在しているのにオカシイと思いましたよ……。
でこのlibmysql__.dllをどこから持ってくればいいかというと、本家の「Strawberry Perl」から拝借します。
https://strawberryperl.com/releases.htmlにあるPortable版のzipファイルをダウンロードしましょう。
zipファイルを解凍したら中に
\c\bin\libmysql__.dllがあるはずなので、それを
C:\usr\vendor\lib\auto\DBD\mysql内にコピーします。
これだけであっさりエラー解消しました。
ものすごく苦労して調べたのはなんだったんだ……。
最新のXAMPPに入ってるのもStrawberry Perlのはずなんですが、なんでこんなエラー起きるんですかね?
まぁ、とりあえず解決したのでヨシ!