[英]Why does Perl reuse the same MySQL connection in this Munin script?
我已經修改了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
反映的套接字設置不同的值。 因此,每個實例都有自己的env.mysqlsocket
值。 當我運行我的實例時
$ for i in a b c; do munin-run mysql_${i}_innodb_rows; done
然后連接所述第一個( a
以該順序)將打開,其通過隨后的那些用於代替各自的插槽,一個連接。 連接字符串是正確的,它們確實發生了變化。
不執行DBI->connect
。 我可以通過將套接字文件名設置為不存在的文件來證明這一點; 它再次重用相同的連接。
我想知道,因為這些是符號鏈接腳本的獨立過程。
如何強制我的Perl腳本打開新連接呢?
使用手冊:
$dsn->disconnect;
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.