繁体   English   中英

无法连接到“本地主机”上的MySQL服务器(10055)

[英]Can't connect to MySQL server on 'localhost' (10055)

我正在依次运行三个perl脚本。 它们每个都多次连接到Mysql数据库,并选择或更新数据库中包含的信息。 在运行这三个脚本大约20次之后(与数据库连接/断开连接的次数超过此次数),我收到消息“无法连接到'localhost'上的MySQL服务器(10055)。

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

my $dbh_m= DBI->connect("dbi:mysql:XXX","root","XXX","mysql_auto_reconnect=1")

或死(“选择Trans:$ DBI :: errstr时出错”);

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

谢谢!

DBI->connect("dbi:mysql:XXX", "root", "XXX", { mysql_auto_reconnect => 1 })

您得到什么错误信息?

您可能应该执行以下操作:

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 ($@);
}

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

脚本完成后,您是否未断开与mysql的连接?

它消耗了mysql中的资源。 请检查mysql日志以获取线索。

问候,

如何解决MySQL错误10055要解决此问题,您需要增加动态端口的数量。 运行以下命令将为您提供50000个端口以供动态使用。

在Windows Server 2008 R2上打开命令提示符

输入以下内容
netsh int ipv4 set dynamicport tcp start=10000 num=50000
按Enter

输入以下内容
netsh int ipv4 set dynamicport udp start=10000 num=50000
按Enter

输入以下内容
netsh int ipv6 set dynamicport tcp start=10000 num=50000
按Enter

输入以下内容
netsh int ipv6 set dynamicport udp start=10000 num=50000
按Enter

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM