如何在perl中管理与MySQL服务器的数据库连接
可能重复: 我使用以下脚本创建到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 =>
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