1

可能的重复:
在 Perl 中爬行期间 MySQL 服务器已消失

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

4

1 回答 1

0

请看看这个线程:http ://www.perlmonks.org/?node_id=317168

本文讨论了处理“MySQL server has gone away”问题的方法。基本上,您需要$dbh在触发查询之前检查状态。

$dbh ||= DBI->connect("connection string", "username", "password");
于 2012-05-19T18:19:39.303 回答