mysql - 找不到 DBI.pm,即使它在路径中

标签 mysql perl dbi munin

我正在尝试安装 munin-mysql plugin但我遇到了一个奇怪的错误。 Munin 提示它在@INC 中找不到 DBI.pm:

[root@mybox perl5]# munin-run mysql
Can't locate DBI.pm in @INC (@INC contains: /usr/local/lib64/perl5 /usr/local/share/perl5 /usr/lib64/perl5/vendor_perl /usr/share/perl5/vendor_perl /usr/lib64/perl5 /usr/share/perl5 .) at /etc/munin/plugins/mysql line 127.
BEGIN failed--compilation aborted at /etc/munin/plugins/mysql line 127.

但是,它确实在路径中,而且恰好在/usr/local/lib64/perl5。它是通过命令 cpanm DBI 安装的。 事实上,有几个 DBI.pm 文件;我怎么知道要使用哪一个?

[root@mybox perl5]# find / -name DBI.pm
/root/.cpan/build/DBI-1.634-Aazmvi/blib/lib/Bundle/DBI.pm
/root/.cpan/build/DBI-1.634-Aazmvi/blib/lib/DBI.pm
/root/.cpan/build/DBI-1.634-Aazmvi/lib/Bundle/DBI.pm
/root/.cpan/build/DBI-1.634-Aazmvi/DBI.pm
/root/.cpanm/work/1460983027.32244/DBI-1.634/blib/lib/Bundle/DBI.pm
/root/.cpanm/work/1460983027.32244/DBI-1.634/blib/lib/DBI.pm
/root/.cpanm/work/1460983027.32244/DBI-1.634/lib/Bundle/DBI.pm
/root/.cpanm/work/1460983027.32244/DBI-1.634/DBI.pm
/root/munin-mysql-master/t/mock/DBI.pm
/usr/local/lib64/perl5/Bundle/DBI.pm
/usr/local/lib64/perl5/DBI.pm

相关问题:

最佳答案

munin-run switches users .默认用户是 nobody。该用户可能没有读取该文件的权限。

The script must be run with sufficient privileges, usually as root, as it switches to either munin-node's default user (often "nobody") or any user specifically configured to run the given plugin.

检查 munin-run --debug 它以什么用户身份运行,并检查用户是否可以读取 /usr/local/lib64/perl5/DBI.pm

关于mysql - 找不到 DBI.pm,即使它在路径中,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/36696846/

相关文章:

python - 我可以在 Perl 正则表达式中使用命名组来获取哈希结果吗?

windows - 使用 Microsoft VC (cl.exe) 2010 (10.0) Express 和 ActivePerl 5.12.4/32 构建 Perl/C 模块

perl - 如何在 unix/per/tcl 中根据 B 列的降序对 A 列进行唯一排序?

Perl dbi sqlite 'select * ..' 只返回第一个元素

php - 按价格对产品排序

mysql - 选择所有表行,每个选定行来自 MySQL 中的另一个表

mysql - 如何在少于 N 个查询中更新 N 个帖子的 "my_field"?

mysql - Corba 迭代器从 MySQL 批量检索数据

mysql - 如何检查 Perl 模块 (DBD::mysql) 是否正确安装?

mysql - Perl DBI - 并行事务