参考链接: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     *

* - 管理的端口排除。