首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >AnyEvent::DBI和数据库重新连接

AnyEvent::DBI和数据库重新连接
EN

Stack Overflow用户
提问于 2011-10-07 19:13:01
回答 2查看 949关注 0票数 3

我在单例程序包中使用AnyEvent::DBI,当数据库/查询等几个小时后没有活动时,我在尝试发出查询时收到以下错误:

代码语言:javascript
复制
DBD::mysql::st execute failed: MySQL server has gone away at /usr/local/share/perl/5.10.1/AnyEvent/DBI.pm line 98.

一种简单的方法是: connect to DB ==> Issue query ==> Close connection。这是我在使用DBI时通常使用的方法。

在我的例子中,问题是我无法找到使用AnyEvent::DBI重新连接到数据库的方法,除非创建一个新的AnyEvent::DBI实例( new )。

任何建议都是很棒的!

EN

回答 2

Stack Overflow用户

发布于 2012-12-05 23:45:03

根据CPAN上的DBD::mysql文档,您需要使用:

代码语言:javascript
复制
$dbh->{mysql_auto_reconnect} = 1;

以下是指向该参考的链接:

http://metacpan.org/pod/DBD::mysql

票数 2
EN

Stack Overflow用户

发布于 2011-10-07 20:24:15

在MySQL中,有一个wait_timeout变量用于设置非交互式连接的持续时间。

对于长时间运行的连接,您可以尝试将该值(默认值= 28800 )更改为更合适的值。

可以通过一个简单的查询来更新wait_timeout

代码语言:javascript
复制
mysql> SET SESSION wait_timeout = 50000;

并与另一个一起检索

代码语言:javascript
复制
mysql> SHOW VARIABLES LIKE 'wait_timeout';
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/7686455

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档