解决 2003 Can’t connect to MySQL server on ‘localhost’ (10048)

2003 
Can’t connect to MySQL server on ‘localhost’ (10048)
一般见于使用mysql的windows 2003服务器.
错误的出现的原因:

第一种原因:
应用程序需要快速释放和创建新连接, 但是由于 TIME_WAIT 中存在的连接超过默认值,导致较低吞吐量.
解决方案:
和本错误密切相关的两个windows的注册表项:TcpTimedWaitDelay和MaxUserPort的值.
TcpTimedWaitDelay 确
定 TCP/IP 可释放已关闭连接并重用其资源前, 必须经过的时间. 关闭和释放之间的此时间间隔通称 TIME_WAIT 状态或两倍最大段生命周
期(2MSL)状态. 此时间期间, 重新打开到客户机和服务器的连接的成本少于建立新连接. 减少此条目的值允许 TCP/IP 更快地释放已关闭的连
接, 为新连接提供更多资源.
MaxUserPort 确定从系统请求任何可用用户端口时所用最大端口数,TCP/IP 可指定的最高端口
号. 如果建立 TCP 连接最大端口连接大于 5000, 本地计算机响应以下错误信息WSAENOBUFS (10055): 因为系统缺乏足够缓冲
区或者因为队列已满而无法执行套接字上操作, 从而导致应用程序的10048错误.
打开注册表编辑器regedit
TcpTimedWaitDelay 设置:找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 注册表子键并创建名为TcpTimedWaitDelay 的新 REG_DWORD 值设置此值为十进制 30, 十六进制为 0×0000001e该值等待时间将是 30 秒。本项的默认值:0xF0(16进制), 等待时间设置为 240 秒
MaxUserPort 设置(增加最大值端口连接):找到
HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters 注册表子键并创建名为 MaxUserPort 的新 REG_DWORD 值设置此值为十进制最低 32768该值等待时间将是 30 秒。重启windows系统。本项的默认值:5000(十进制)
关闭注册表编辑器, 重启windows系统。
(HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters\TcpTimedWaitDelay
如果注册表中没有TcpTimedWaitDelay这个项目,请增加这个项目,并设置为双字节(DWORD)类型数值设置为30 ~ 60 之间即可)

另外一个原因是
关于Can’t connect to MySQL server on ‘localhost’ (10048)
这个bug出现在一个LOOP里面,每跑一次,会连接一次MySQL database.
在我自己的Windowx XP 没有出现,不过在 windows 2003 server, x32. 会出现。
因为win32po每次 release rtand close p ort 会有延迟。才导致这个bug.
可以看下面的 forum discussion:
http://bugs.mysql.com/bug.php?id=6580
还有microsoft对这个bug的solution…很麻烦的。。。
http://support.microsoft.com/kb/q196271/
怎么解决呢?
只要去掉 mysql_close()就可以了. 只在 program 的最后放一个 mysql_close() 就可以解决这个问题了。

时间: 2025-01-05 03:14:10

解决 2003 Can’t connect to MySQL server on ‘localhost’ (10048)的相关文章

解决Can't connect to MySQL server on 'localhost' (10048)

解决Can't connect to MySQL server on 'localhost' (10048) 您使用的是Windows操作系统,此错误与一个注册表键值TcpTimedWaitDelay有关.减小Windows中TcpTimedWaitDelay时间可解决此类问题,默认情况下为240(未设置的情况下也是这个数值) 此项设置需要到注册表如下位置进行设置HKEY_LOCAL_MACHINE/SYSTEM/CurrentControlSet/Services/Tcpip/Paramete

Navicat连接mysql出现2003——can't connect to mysql server on localhost(10061)引发的关于人生的思考)

(0)目录 走,是一辈子,不走,也是一辈子(程序猿之路) Navicat连接mysql出现2003--can't connect to mysql server on localhost(10061) 一:起因 (0)最近由于病了一场,闲暇时间(即生病期间)一直思考如下问题: 思考一:如何做一名合格的程序猿,怎么才能成为一名名副其实的程序猿? 思考二:还有就是到底,值不值得熬夜加班去搞研发(或转型或做相对轻松的其它IT岗位~~~对于这个问题,我一时无法给出答案,希望各位帮我分析一下,不胜感激!!

MySQL服务无法启动(2003 - Can't connect to MySQL server on‘localhost' (10061).)

学过了SQL Server.Oracle等大型的数据库系统,最近想了解研究一下体积相对较小,功能相对较差MySQL数据库.以前做一些课程设计的时候,都用的是SQL Server和Oracle数据库,现在想想真是大材小用了.于是说干就干,首先下载,这个不费吹灰之力,"mysql-essential-5.1.54-win32.zip"大小只有三十四MB.接下来自然是解压,然后开始安装.对了,我用的系统是Windows7普通家庭版. 安装过程很顺利,而且网上有大量的安装教程.安装完成之后,怀

2003 -can't connect to mysql server on ‘localhost'(10061)

今天用navicat连接mysql时候出现2003 -can't connect to mysql server on 'localhost'(10061)错误.错误截图如下: 产生原因是:mysql服务未启动 解决办法是:通过命令services.msc将mysql服务启动即可. 2003 -can't connect to mysql server on 'localhost'(10061)

Navicat连接mysql出现2003——can't connect to mysql server on localhost(10061)引发的思考)

一:起因 (0)最近由于病了一场,闲暇时间(即生病期间)一直思考如下问题: 思考一:如何做一名合格的程序猿,怎么才能成为一名名副其实的程序猿? 思考二:还有就是到底,值不值得熬夜加班去搞研发(或转型或做相对轻松的其它IT岗位~~~对于这个问题,我一时无法给出答案,希望各位帮我分析一下,不胜感激!!!) (1)如果没有做到这一点你怎么能说,你是一名合格的程序猿 —— 安装程序或者运行开发程序... http://d.dxy.cn/detail/7870458http://d.dxy.cn/deta

连接mysql报错:error 2003 (hy000):can't connect to mysql server on 'localhost' (10061)

一.mysql 的bin目录下有个MySQLInstanceConfig.exe,运行就可以进行创建数据库实例,创建实例时也可以生成windows 服务,把服务设置成自动启动就可以了 二.安装在D盘的discuzz!打开后出现上述错误,请问应如何处理?winmysqladmin已经启动,但三色树上有一个小红点如果出现"ERROR 2003: Can't connect to MySQL server on 'localhost' (10061)",说明你的MySQL还没有启动.解决办法

Navicat for Mysql2003-can's connect to MySQL server on'localhost'10061的解决

Navicat for Mysql2003-can's connect to MySQL server on'localhost'10061的解决 环境:Navicat for Mysql 8.2 + MySQL Sever 5.1 问题:通过MySQL命令行能连接,但是通过Navicat for Mysql 8.2却连不上,出现如下错误: 2003 - can's connect to MySQL server on 'localhost' 10061 解决: 删除安装目录下的my.ini,然

学习python3 MySQL数据库语法遇到的问题:"Can't connect to MySQL server on 'localhost'

运行学习教程里面的mysql数据库按照里面要的步骤安装pyMySQL,学习里面的内容,会出现一些疑问,我也遇到了,发现这是一个认识上错误,实例如下: 根据基础教程运行下面代码,会报错: #!/usr/bin/python3 import pymysql # 打开数据库连接 db = pymysql.connect("localhost","test","test","DB" ) # 使用 cursor() 方法创建一个游标对象

MySQL显示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)解决方法

MySQL显示ERROR 2003 (HY000): Can't connect to MySQL server on 'localhost' (10061)解决方法 2.4K 解决方法: 第一步cd进入mysql的bin目录下: cd C:\Program Files\MySQL\MySQL Server 5.5\bin 输入: mysqld --skip-grant-tables 再新开一个cmd,再进入bin目录: cd C:\Program Files\MySQL\MySQL Serve