根据一些教程,以下内容应该有效:
在 MySQL 中创建一个新用户。
$ mysql -uroot -p
> CREATE USER 'munin'@'localhost';
> exit;
在 munin 中使用该用户访问数据库:编辑/etc/munin/plugin-conf.d/munin-node
。在 [mysql*] 处设置以下内容:
[mysql*]
env.mysqlopts -u munin
奇怪的是,跑步
/usr/sbin/munin-node-configure --suggest | grep mysql
它告诉我 MySQL 无法访问数据库,并且它尝试使用用户访问数据库根:
[DBI connect('mysql;mysql_connect_timeout=5','root',...) failed: Access denied for user 'root'@'localhost' (using password: NO)
这是一台 CentOS 5.5 机器。
为什么 munin-node-configure 应该忽略 /etc/munin/plugin-conf.d/munin-node 中的设置?我应该在其他地方设置吗?重新加载或重新启动 munin-node 守护进程也不会改变任何事情。
答案1
对我来说通配符似乎也不起作用,但下面的方法确实有效
[mysql_queries]
env.mysqlopts -u dev1
答案2
对于 Munin 1.4.7,文档中有错误:mysql 插件使用另一个名称查找环境变量。
您可以检查 /usr/share/munin/plugins/mysql_
my %config = (
'dsn' => $ENV{'mysqlconnection'} || 'DBI:mysql:mysql',
'user' => $ENV{'mysqluser'} || 'root',
'password' => $ENV{'mysqlpassword'} || '',
);
因为脚本没有检查“mysqlopts”,所以我必须设置
[mysql*]
env.mysqluser username
env.mysqlpassword pass
然后重新启动 munin-node(为了安全起见)。