首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >无法连接到'localhost‘上的MySQL服务器(10055)

问无法连接到'localhost‘上的MySQL服务器(10055)
EN

Stack Overflow用户
提问于 2012-02-02 17:25:15
回答 4查看 5.5K关注 0票数 1

我正在按顺序运行三个perl脚本。它们中的每一个都多次连接到Mysql数据库,并选择或更新数据库中包含的信息。在运行这三个脚本大约20~次(与数据库连接/断开连接的次数比这多得多)之后,我收到消息'Can't connect to MySQL server on 'localhost‘(10055)。

我在其他地方读到过,我可以使用mysql_auto_reconnect=1让它重新连接到数据库,但是我不完全确定这就是问题所在。当程序崩溃时,我计算机上的Mysql服务器仍然连接-我不必重新启动它。我想知道它为什么这样做,而且我也不完全确定我是如何放入“”mysql_auto_reconnect=1“”的,因为当我这样做时,它会告诉我使用旧样式语法的DBI->connect已被弃用。

代码语言:javascript
复制
my $dbh_m= DBI->connect("dbi:mysql:XXX","root","XXX","mysql_auto_reconnect=1")

or die(“选择传输错误:$DBI::errstr");

我是否也需要在每次连接到数据库时都写入这段代码?(将它放入其中一个连接并不能解决问题,我仍然从所有其他连接收到错误消息-它不会再次开始运行,然后再次崩溃)。这是我多次连接/断开数据库的问题吗?

谢谢!

EN

回答 4

Stack Overflow用户

回答已采纳

发布于 2012-02-02 19:10:00

您得到了什么错误消息?

您可能应该这样做:

代码语言:javascript
复制
my $dbh;
{
    local $@;
    do {
        eval { 
            $dbh = DBI->connect("dbi:mysql:XXX", "root", "XXX", { mysql_auto_reconnect => 1 })
        };
        if ( $@ ) {
            warn "Error: $DBI::errstr\n";
            warn "Trying to reconnect in 5 sec.\n";
            sleep 5;
        }
    } while ($@);
}

以防数据库没有响应或有太多连接。

票数 1
EN

Stack Overflow用户

发布于 2012-02-02 17:32:53

代码语言:javascript
复制
DBI->connect("dbi:mysql:XXX", "root", "XXX", { mysql_auto_reconnect => 1 })
票数 3
EN

Stack Overflow用户

发布于 2012-02-03 18:03:56

也许当你的脚本结束时,你没有断开与mysql的连接?

它正在消耗mysql中资源。请查看mysql日志中的线索。

致以敬意,

票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/9109830

复制
相关文章

相似问题

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