网站突然报错 Can't connect to MySQL server on 'localhost' (10048)

网站突然报错 Can't connect to MySQL server on 'localhost' (10048),第1张

由于TIME_WAIT

中存在的连接超过默认值,导致较低吞吐量

.

解决方案

:

和本错误密切相关的两个

windows

注册表

:TcpTimedWaitDelay

MaxUserP

ort

的值

.

TcpTimedWaitDelay

确定

TCP

/IP

可释放已关闭连接并重用其资源前

,

必须经过的时间

.

关闭和释放之间的此时间间

隔通称

TIME

_WAIT

状态或两倍最大段生命周期(

2MSL

)状态

.

此时间期间

,

重新打开到客户机和服务器的连接的成

本少于建立新连接

.

减少此条目的值允许

TCP

/IP

更快地释放已关闭的连接

,

为新连接提供更多资源

.

MaxUserP

ort

确定从系统请求任何可用用户端口时所用最大端口数,

TCP

/IP

可指定的最高端口号

.

如果建立

TCP

接最大端口连接大于

5000,

本地计算机响应以下错误信息

WS

AE

NOBUFS

(10055):

因为系统缺乏足够缓冲区或者因

为队列已满而无法执行套接字上 *** 作

,

从而导致应用程序的

10048

错误

.

解决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系统

你把mysql_connect("localhost", "root", "password")

改成mysql_connect("127.0.0.1", "root", "password")

试试能不能连上

能的话

你打开hosts文件

增加127.0.0.1 localhost的对应关系即可


欢迎分享,转载请注明来源:内存溢出

原文地址: http://outofmemory.cn/zaji/5895264.html

(0)
打赏 微信扫一扫 微信扫一扫 支付宝扫一扫 支付宝扫一扫
上一篇 2023-03-07
下一篇 2023-03-07

发表评论

登录后才能评论

评论列表(0条)

保存