簡體   English   中英

為什么Perl在這個Munin腳本中重用相同的MySQL連接?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM