据我所知,这是最近在本地服务器上开始发生的错误:
Can't connect to MySQL server on 'localhost' (10048).我的网站将工作一段时间,然后它会随机抛出这个错误,然后重新开始工作。关于如何解决这个问题有什么建议吗?我在网上搜索过,大多数人声称这是一个基于窗口的错误,需要一个注册表修复,但我想看看是否有其他人遇到过这个问题,并有更好的建议?谢谢!
发布于 2010-01-01 19:31:47
当发生此错误时,我建议查看"netstat -ano“的输出。如果这是Windows 2003,则默认的临时端口范围仅为1024-5000。如果此端口范围已满,您将无法建立新的出站连接,包括“出站”到本地主机。您可以通过更改注册表中的MaxUserPort设置来解决这一问题,如果netstat显示存在大量处于TIME_WAIT状态的连接,则可能与TCPTimedWaitDelay设置一起进行更改。“'netstat -ano发现/C”:“”会给出一个(有点误导)的数字,说明有多少套接字是活动的。
但是,如果您发现这个端口范围都在使用中,正如其他人提到的那样,您可能会遇到连接未关闭的潜在问题。这可能是个代码问题。
此外,如果您的web服务器和数据库服务器运行在同一台计算机上,则可能需要考虑TCP/IP以外的连接协议,例如内存或命名管道。
发布于 2015-10-23 13:15:35
解决方案:
打开注册表编辑器regedit
TcpTimedWaitDelay集:
找到HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注册表子项并创建一个名为TcpTimedWaitDelay的新REG_DWORD值。
将此值设置为十进制30,十六进制0×0000001e。此值将等待时间为30秒。
默认值:0xF0 (16229),等待时间设置为240秒。
MaxUserPort集(以增加最大端口连接):
查找HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\TCPIP\Parameters注册表子项,并创建一个名为MaxUserPort的新REG_DWORD值。
设置为小数点32768的最低值。
默认值: 5000 (小数)。
关闭注册表编辑器,然后重新启动windows系统。
发布于 2009-12-31 15:15:48
您可能需要确保关闭到数据库的所有连接。当您调用查询时,可能会意外地打开它们,随着时间的推移,Windows将达到它的最大连接数,并抛出无法连接的错误。稍后再试一次,windows可能已经释放了几个连接,并且再次能够访问数据库。
祝你好运,希望这对一些人有帮助。
https://serverfault.com/questions/98505
复制相似问题