gpt4 book ai didi

mysql - 为什么 Perl 在此 Munin 脚本中重用相同的 MySQL 连接?

转载 作者:行者123 更新时间:2023-11-30 22:14:07 25 4
gpt4 key购买 nike

我已经修改了来自 Munin 的脚本 mysql_,所以函数 do_connect 看起来像这样:

sub db_connect {
my $dsn = "$config{dsn};mysql_socket=$config{mysqlsocket};mysql_connect_timeout=5;";

return DBI->connect($dsn, $config{user}, $config{password}, {
RaiseError => 1,
PrintError => 0,
FetchHashKeyName => 'NAME_lc',
});
}

我已配置 plugins-conf 为环境变量 mysqlsocket 中反射(reflect)的套接字设置不同的值。因此,每个实例都有自己的 env.mysqlsocket 值。当我用

运行我的实例时
$ for i in a b c; do munin-run mysql_${i}_innodb_rows; done

然后第一个连接的(a 按此顺序)打开一个连接,由后续的连接使用,而不是它们的套接字。连接字符串是正确的,它们确实发生了变化。

DBI->connect 没有被执行。我可以通过将套接字文件名设置为不存在的文件来证明这一点;它再次重用相同的连接。

我想知道,因为这些是符号链接(symbolic link)脚本的独立进程。

我怎样才能强制我的 Perl 脚本打开一个新的连接?

最佳答案

使用手册:

$dsn->disconnect;

关于mysql - 为什么 Perl 在此 Munin 脚本中重用相同的 MySQL 连接?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/39047680/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com