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

时间:2012-05-19 10:08:05

标签: perl

  

可能重复:
  MySQL server has gone away during crawling in Perl

我正在使用以下脚本来创建与我的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的新手,我无法看到数据库连接的任何问题。

1 个答案:

答案 0 :(得分:0)

请看一下这个主题:http://www.perlmonks.org/?node_id=317168

这讨论了处理“MySQL服务器已经消失”问题的方法。基本上,您需要在触发查询之前检查$dbh的状态。

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