参考链接:https://www.cnblogs.com/uncmd/p/16056993.html
小皮MySQL启动不起来,错误日志显示3306端口被占用,但是却查不到占用的进程
netstat -ano | findstr 3306
这个时候端口应该就是被系统保留了,执行下面命令
每次重启电脑,都会随机选择一些端口保留
netsh interface ipv4 show excludedportrange protocol=tcp
可以看到,3306端口是被系统保留了,只有 50000 - 50059
的端口开放(后面带了一个 * 的)
可以用管理员身份执行 netsh int ipv4 add excludedportrange protocol=tcp startport=3301 numberofports=10
,不过这个一般是执行不成功的,会提示 另一个程序正在使用此文件,进程无法访问。
正确的解决方法很简单,就是重新设置一下「TCP 动态端口范围」,让Hyper-V只在我们设定的范围内保留端口即可。可以以管理员权限运行下面的命令,将「TCP 动态端口范围」重新设定一下即可。如果你觉得这个范围太大,还可以改小一点。
netsh int ipv4 set dynamic tcp start=66666 num=2222
netsh int ipv6 set dynamic tcp start=66666 num=2222
参考链接:https://zhuanlan.zhihu.com/p/474392069
如果暂时不想重启,就先用能用的端口
协议 tcp 端口排除范围
开始端口 结束端口
---------- --------
1028 1127
1128 1227
1228 1327
1353 1452
1453 1552
2018 2117
2180 2279
3239 3338
3339 3438
3539 3638
5357 5357
5358 5457
5458 5557
5658 5757
7195 7294
7295 7394
7395 7494
7495 7594
14821 14920
50000 50059 *
* - 管理的端口排除。