Warning: file_get_contents(/data/phpspider/zhask/data//catemap/4/oop/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
如何在perl中管理与MySQL服务器的数据库连接_Perl - Fatal编程技术网

如何在perl中管理与MySQL服务器的数据库连接

如何在perl中管理与MySQL服务器的数据库连接,perl,Perl,可能重复: 我使用以下脚本创建到mysql服务器的数据库连接 my $dsn = "dbi:mysql:dbname=$dbname;$dbhost"; my $dbh = DBI->connect( $dsn, $dbuser, $dbpasswd, { PrintError => 1, Warn => 1, AutoCommit =>

可能重复:

我使用以下脚本创建到mysql服务器的数据库连接

my $dsn = "dbi:mysql:dbname=$dbname;$dbhost";
my $dbh = DBI->connect(
    $dsn, $dbuser,
    $dbpasswd,
    {
        PrintError         => 1,
        Warn               => 1,
        AutoCommit         => 1,
        ShowErrorStatement => 1
    }
);
使用此连接的主脚本是一个长时间运行的脚本。在执行过程中,程序有时会失败,并显示错误消息

MySQL server has gone away

我是Perl新手,看不出数据库连接有任何问题

请看一下这个帖子:

本文讨论了如何处理MySQL服务器已经消失的问题。基本上,您需要在启动查询之前检查$dbh的状态

$dbh ||= DBI->connect("connection string", "username", "password");

它看起来正常,错误消息表明问题可能不是您连接的方式;也许需要更多的细节来了解问题。您是否正在打开多个连接而不关闭它们?-MySql中存在最大连接限制。。。您的$dbhost始终可用吗?-网络问题?。。。需要更多详细信息否,这是单个连接实例,根据某些条件,此连接用于获取数据。这是否解决了用户的问题?我们不知道,但可能知道。@ShinTakezou,是的,dbhost总是可用。@Shades尝试重复问题的建议,可能$dbh->{InactiveDestroy}=1;-更可能的是mysql\u auto\u reconnect,即$dbh->{mysql\u auto\u reconnect}=1