use*_*661 6 php mysql mysqli phpmyadmin
错误:
mysqli_real_connect():( HY000/2002):通常只允许使用每个套接字地址(协议/网络地址/端口).
但是,看来我有足够的端口.
细节:
我有一台MySQL运行了几个月而没有问题的服务器.我正在运行Windows 10,PHP 7.0和MySQL 5.7.这是一台繁忙的服务器,每小时交易量很大.
现在大约一个星期,我的体积过大:
mysqli_real_connect():( HY000/2002):通常只允许使用每个套接字地址(协议/网络地址/端口).
我尝试了一些共同的建议,这些建议在其他机器上对我有用.
TcpTimedWaitDelay = 30 and MaxUserPort = 65534
Run Code Online (Sandbox Code Playgroud)
我还补充说:
TcpNumConnections = 16777214 and TcpMaxDataRetransmissions = 5.
Run Code Online (Sandbox Code Playgroud)
我可以通过netsh确认最大端口和超时.此外,当我运行netstat/abno时,我一直看到使用的端口少于1000个.但是,我仍然遇到上述错误.所以看起来机器甚至没有使用所有的端口.
在我.ini,我有一个connection limit of 10,000.
所以这看起来是一个 Windows 问题,而不是 MySQLi 的问题。(可能是由于最近的 Windows 10 更新) - 不过可能是由于套接字未正确关闭。
修复 1:提供更多可用端口
启动regedit.exe并浏览至: HKLM\System\CurrentControlSet\Services\Tcpip\Parameters\MaxUserPort
有一个字符串值,默认设置为 5000 - 这决定了可用端口的最大数量。您可以将其更改为 65534 以内的任何值。
确保重新启动网络服务器(最好是整个计算机)以使更改生效
修复 2:显式指定 localhost IP
任何与 localhost 的连接都应指定为127.0.0.1,而不是localhost
修复 3:确认没有重复的服务
检查以确保您的 Web 服务器没有多个实例正在运行,或者有多个调用来打开与所述服务器的连接 - 因为这会锁定端口。打开services.msc - 如果存在重复的服务,您应该删除一个实例。
修复 4:您是否正确关闭连接?
如果可以的话,请发布您的代码,以便我们更好地了解发生的情况 - 以及连接是否正确关闭,从而释放套接字/端口
| 归档时间: |
|
| 查看次数: |
2117 次 |
| 最近记录: |