不能连接mysql服务器 on_MySQL 无法连接 can't connect to mysql server on 'localhost' (10055)...

记录一次失败的服务器问题排查。

1. 问题

环境:windows2012 、mysql 5.6

出现问题:重启MySQL服务,显示启动成功,用第三工具连接时提示:错误码2003  can't connect to mysql server on 'localhost' (10055);

通过cmd命令尝试连接,还是无法连接。

首先确定mysql服务已经启动了,如果未启动就连接的话也会有这样的错误提示。

2.排查并尝试解决

第一反应先百度 can't connect to mysql server on 'localhost' (10055),得到参考,进行以下修改:

通过注册表配置动态分配端口的最大值,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters里加上如下的键值:

ValueName: MaxUserPort (有博主的情况是只修改这一项)

ValueType: DWORD

Valuedata: 65534

通过注册表配置连接等待时间,在HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Services\Tcpip\Parameters加上

键值:TcpTimedWaitDelay

数值类型:REG_DWORD - 时间(以秒为单位)

有效范围:30-300(十进制)

默认值:0x78(十进制 120)

由于文章太多,我也记不清到底是参考哪位博主的了,有一位博主介绍了MaxUserPort和TcpTimedWaitDelay,链接地址:https://www.cnblogs.com/tianzhiliang/articles/2400176.html

可能是当时没重启服务器,做完以上修改后重启MySQL服务后问题依旧存在。

3.梳理

关闭其他服务,只启动MySQL数据库的服务,通过命令netstat -ano查看当前已使用的端口,发现只有很少一部分。再次尝试连接数据库,问题依旧存在,此时我有点懵了。

选择修改MaxUserPort和TcpTimedWaitDelay,是觉得没有可用的连接才造成数据库无法连接,可是现在根本就没有占用多少连接,更懵了。

4.重启大法

由于已经有用户再使用该系统,所以只能先解决当前问题,无奈只能采用重启大法,重启后该问题不再复现。

5.总结

平时对服务器的操作就比较少,也是第一次遇见这个情况,虽然这次没找到问题的原因,但是总结一下,如果再此发生这个问题也能有个思路。

先看数据库的错误日志,在my.ini文件中(C:\ProgramData\MySQL\MySQL Server 5.6下),找到log-error="LAPTOP-KP8RB178.err"(C:\ProgramData\MySQL\MySQL Server 5.6\data下)。

还得排查端口占用情况,netstat -aon|findstr 3306命令,查看数据库的TCP连接情况,如果很多状态为TIME_WAIT的连接,关闭这些连接后再试试。

有位博主的建议是关闭防火墙,由于对服务器防火墙知识了解不多,我当时直接把Windows Firewall服务给关了,很尴尬,无法远程了,这个方案做个备选吧。

数据库版本和系统兼容问题,看了这篇文章后才有这个猜测,都是English,有些地方我肯定也没整明白。

还有一些参考链接如下:

  • 1
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值