为什么mysqldumpslow.pl在Windows上找不到任何Perl模块?
我想从命令行解析一个MYSQL慢查询日志。为什么mysqldumpslow.pl在Windows上找不到任何Perl模块?
在进入此:
set PATH=G:\xampp\perl\bin\;%PATH%
cd /d G:\xampp\mysql\scripts
perl mysqldumpslow.pl -s c -t 10
壳返回错误can't locate strict.pm in @INC (@INC contains: .) at mysqldumpslow.pl at line 8. BEGIN failed
在XAMPP的perl
目录,仅存在一个文件perl.exe
。
我是否缺少perl模块/库?我需要阅读这个日志文件?
一个解决办法是找到strict.pm
的位置,你的Perl安装的目录添加到PERL5LIB
环境变量,或调用perl
与 -I/path/to/strict.pm/directory
选项(参见perlfaq8
: How do I add a directory to my include path (@INC) at runtime?)。
如果您发现更多不满意的依赖项,请继续将目录添加到PERL5LIB
或其他-I
选项,直到您的程序可以运行。
(虽然最终你可能会厌倦这种和修复/重新安装的perl)
UPDATE:通过1.7.3 XAMPP分布来看,所有的Perl库文件都位于xampp\perl\lib
和xampp\perl\site\lib
下,所以
perl -IG:/xampp/perl/lib -IG:/xampp/perl/site/lib mysqldumpslow.pl -s c -t 10
可能是所有你需要做的。 YMMV如果你有一个旧的XAMPP发行版。
你的Perl安装似乎已经以某种方式搞砸了。我对xampp并不熟悉,但我很难相信他们只捆绑了perl.exe
而没有剩下的分配。
在G:\xampp\perl
,应该有子目录,如:lib
,site
等
strict
是一个核心的编译和它的缺席表明您没有正确的Perl安装。
其实,我刚刚下载xampp,它确实包含xampp\perl
下lib
和site\lib
(它缺少文档,但是这并不是运行Perl脚本必要的)。
哇,这是一个搞糟的'@ INC' ......他们对Perl发行做了什么? – ephemient 2010-02-02 17:02:27
'perl -V'显示什么?你可以在其他Perl脚本中加载模块,或者这只是mysqldumpslow.pl的问题吗? – 2010-02-02 17:40:52
perl -v显示perl v5.8.7,关于文档 – rrrfusco 2010-02-03 02:34:52