[英]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.