解决 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的连接问题,重启电脑登录不上mysql的问题
Can't connect to MySQL server on 'localhost' (10061)解决方法,需要的朋友可以参考下。
Navicat premium连接mysql时出现2003-Can't connect to MySql server on 'localhost'(10061)错误
windows 2003服务器运行php的提示Can't connect to MySQL server on 'localhost' (10048), 下面来看下解决方法
最近在学习Django框架,于是在windows系统上搭建了Django环境,并使用虚拟机ubuntu系统上安装的mysql作为项目的远程数据库,前几天一直用得好好的,今天在虚拟机上连接数据库时,出现了如下错误: 本地数据库没法...
MySQL报错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服务就可以...
?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
mysql配置时提示error nr.2003 can't connect to mysql server on 'localhost'(10061).doc
"Host 'localhost' is not allowed to connect to this MySQL server" 的原因及解决办法
can't connect to mysql server on localhost 10061
ERROR 2002 (HY000): Can’t connect to local MySQL server through socket ‘/tmp/mysql.sock’ (2) 出现问题原因: 有可能是 my.cnf 配置文件中设置了 [mysqld] 的参数 socket ,而没有设置[client]的参数socket ...
ERROR 2002 (HY000): Can't connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock' (2) 排查过程 1、先查看 /etc/rc.d/init.d/mysqld status 看看mysql是否已经启动. 另外看看是不是权限问题...
如果你想连接你的mysql的时候发生这个错误: 代码如下: ERROR 1130: Host ‘192.168.1.3’ is not allowed to connect to this MySQL server 解决方法: 1。 改表法。可能是你的帐号不允许从远程登陆,只能在...
使用下面的命令检查是否安装有MySQL Server [root@localhost etc]# rpm -qa | grep mysql // 这个命令就会查看该操作系统上是否已经安装了mysql数据库 有的话,我们就通过 rpm -e 命令 或者 rpm -e --nodeps 命令...
Otherwise no client application can connect to the server. After you have opened the port please press [Retry] to apply the security settings. If you are re-installing after you just uninstalled the...
mysql5.7.17解压包安装与启动的图文步骤详情解说, Can't connect to MySQL server on 'localhost' (10061)报错解决 服务无法启动等报错处理