解决 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() 就可以解决这个问题了。
分享到:
相关推荐
解决Can’t connect to MySQL server on ‘localhost’ (10048), 一般见于使用mysql的windows 2003服务器. 错误的出现的原因: 应用程序需要快速释放和创建新连接, 但是由于 TIME_WAIT 中存在的连接超过默认值,导致...
对于“MySQL服务未打开”的解决方案,可以按照以下步骤操作: 1. **打开服务管理器**:通过在运行窗口(Win+R)输入`services.msc`,可以打开服务管理界面。 2. **查找MySQL服务**:在服务列表中找到名为“MySQL”...
当在Windows 2003服务器环境下,运行PHP时遇到"Can't connect to MySQL server on 'localhost' (10048)"错误时,这意味着本地MySQL服务器没有被成功连接。这种情况通常发生在需要迅速地释放并重新建立新的数据库连接...
### "Can't connect to MySQL server on localhost (10061)" 解决方法 #### 错误概述 遇到“Can't connect to MySQL server on 'localhost' (10061)”这一错误通常意味着本地计算机上的MySQL服务出现了问题,可能是...
在本文中,我们将深入探讨如何有效解决“ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (111)”这个错误,它通常发生在尝试连接到本地MySQL服务器时失败的情况。 首先,这个错误代码...
ERROR 2003 (HY000): Can't connect to MySQL server on '*.*.*.*' (113)的解决办法
Navicat premium连接mysql时出现2003-Can't connect to MySql server on 'localhost'(10061)错误
有些时候我们运行php的时候,页面提示Can't connect to MySQL server on 'localhost',那么就需要参考下面的方法来解决。
1、如果你是虚拟主机用户(购买的空间),则联系空间商检查 MySQL 是否正常启动,并确认 MySQL 的配置信息(是否为 localhost); 2、如果你是独立主机用户(拥有管理主机权限),则按下面步骤检查: 1)检查是否...
在启动MYSQL时出现问题:“ERROR 2003 (HY000): Can’t connect to MySQL server on ‘localhost’ (10061)”,情况如图: 二、问题分析 从错误的提示中可以看出MySQL服务没有启动,因此只需要启动MySQL服务就可以...
三、ERROR 2003 (HY000):Can't connect to MySQL server on 'localhost' (10061) 此错误表明MySQL服务未启动,导致无法通过localhost或127.0.0.1连接。你可以通过以下步骤解决这个问题: 1. 打开“我的电脑”。 2....
在MySQL服务器的运行过程中,可能会遇到“ERROR 2002 (HY000): Can't connect to local MySQL server through socket '/tmp/mysql.sock'”这样的错误。这个错误提示表明,客户端试图通过Unix域套接字(socket文件)...
?php $link=mysql_connect(‘localhost’,’root’,... 运行后报错 Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ 但在 命令行中能进入mysql [root@localhost local]# mysql -u root -p E
解决"Host 'localhost' is not allowed to connect to this MySQL server"问题的方法是通过修改my.ini文件和更新用户密码来实现。这种方法简单有效,能够快速解决问题。但是,需要注意MySQL的安全机制,确保MySQL...
mysql配置时提示error nr.2003 can't connect to mysql server on 'localhost'(10061).doc
can't connect to mysql server on localhost 10061
然而,这个过程中可能会遇到各种问题,其中最常见的一种错误就是“ERROR 2003 (HY000): Can't connect to MySQL server on 'IP地址' (111)”。这篇文章将深入探讨这个问题的原因,并提供解决方案。 首先,当尝试...
问题:一台服务器的PHP程序通过localhost地址无法...大部分情况下,可以用localhost代表本机127.0.0.1,但是在MySQL连接时,二者不可混用,而且MySQL中权限设置中localhost与127.0.0.1也是分开设置的。当设置为127.0.0.
在PHP编程中,连接MySQL数据库是一项基础且至关重要的任务,特别是在构建动态网站和Web应用程序时。...但了解`mysql_connect()`和`mysqli_connect()`对于理解历史代码和解决旧系统的问题仍然是有价值的。