SSL VPN 【SSL】“连接MySQL失败,请确认MySQL运行正常”

【SSL】“连接MySQL失败,请确认MySQL运行正常”

更新时间:2023-06-13 23:29:21
登陆SSL VPN的外置数据中心,提示“连接MySQL失败,请确认MySQL运行正常”
 
1、进入安装外置数据中心服务器,查看mysql运行状态,默认情况下外置数据中心的mysql进程占用端口1126
netstat -ano | findstr “1126”查看,若是连接数较多就可以用命令输出到txt(netstat -ano | findstr “1126”>>3.txt),然后打开查看,本案例就是这个方式查看,监听的进程PID:2264:
tasklist |findstr "2264",确认该进程就是MySQL,没有问题:

2、用MySQL命令连接MySQL数据库,提示无法连接到数据库,并有10055报错代码:
3、根据连接报错代码10055百度:
https://blog.csdn.net/langren697/article/details/38422055
大致意思是应用程序频繁的连接访问数据库,而系统会为每个连接动态分配一个端口,Windows Server 2008 R2默认可供动态分配使用的端口只有16383个,大并发的情况下就会导致动态端口占用完的情况,处理方式就是增加动态端口:netsh int ipv4 set dynamicport tcp start=10000 num=50000
4、在第一个步骤用netstat -ano | findstr “1126”查看数据库端口的连接状态时,查到大量的time_wait,符合百度查到的现象:
5、在服务器上执行netsh int ipv4 set dynamicport tcp start=10000 num=50000:
6、再次测试,占时恢复正常:
1、因为大量并发导致动态端口占用完,导致后续连接就连接不上了,通过增加动态端口,暂时解决了问题
2、根本原因是windows服务BUG,参考链接:https://support.microsoft.com/zh ... -are-not-closed-aft
1、netsh int ipv4 set dynamicport tcp start=10000 num=50000:扩大动态端口范围,暂时解决问题
2、服务器更新补丁包“ Windows 7 和 Windows Server 2008 R2 Service Pack 1 (KB976932)”,下载链接:https://www.microsoft.com/zh-CN/download/details.aspx?id=5842
本案例情况下,若是不知道数据库的用户名密码,可以跳过第二步,直接用命令netstat -ano | findstr “1126”查询是否有大量的time_wait即可;