局域网内,客户端无法连接 MySQL Server 了,报 Lost connection to MySQL server at 'reading authorization packet'

2020-09-25 15:26:19 +08:00
 hbolive

背景:局域网内一台 Win 2008 安装有 MySQL 5.7 Server,2 年多了,PC 客户端 A ( win7 )一直连接正常;

起因:昨天下午在 A 上测试一个 golang 程序,因为 go 不太熟,用 xorm:engine, err = xorm.NewEngine 连 MySQL 的时候,是在一个 for 循环里连的,密码写错了,也没 sleep,导致短时间对 MySQL 产生了大量连接,发现不对立刻立刻结束了 go 程序

结果:就再也连不上 MySQL 了,用 Navicat 连接报:2013 - Lost connection to MySQL server at 'reading authorization packet',system error 0 用命令行连接报:2013 - Lost connection to MySQL server at 'reading authorization packet',system error 2 都是连接超时,然后报这个错误。

处理:查阅资料,做了如下处理(修改后都重启过服务): 1 、设置 skip-name-resolve 2 、修改 connect_timeout 为 20 秒 3 、max_connection_errors 我看有 200,就没修改 4 、也有说连接操作错误次数,被服务器 ban 了,mysqladmin flush-hosts 5 、新建用户,用新用户连接 6 、用其他客户端连这台服务器正常 6 、用 A 连另一台服务器上的 MySQL Server 也正常

都无效。有两个老外的问题差不多,最后说是网络的原因,我这肯定不是了。。

实在不知道怎么处理(应该就是跑 go 的时候短时间大量连接失败造成的吧),特来问下各位,谢谢!

2400 次点击
所在节点    MySQL
5 条回复
dorothyREN
2020-09-25 17:36:03 +08:00
你这个应该是被服务器 ban 了。
PUBG98k
2020-09-25 20:08:49 +08:00
看看你的程序是否有一大堆未关闭的连接
opengps
2020-09-26 10:47:46 +08:00
看着是你短时间大量连接,可能服务器端把你 ip 拉黑了,也就是一楼说的 ban,你得看下数据库所在服务器的防御策略,或者你换个你的 ip 再试试
noreplay
2020-09-27 08:52:28 +08:00
把防火墙都关🐶
hbolive
2020-09-27 09:24:49 +08:00
不想太监,统一回复楼上各位,虽然知道原因,但最后也不知道怎么解决,只有换个 IP,换个 IP 后就行了,然后将另一台电脑换成我原来的 IP,错误也一样,就是 IP 被 ban 了。。

@dorothyREN
@PUBG98k
@opengps
@noreplay

这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。

https://www.v2ex.com/t/710446

V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。

V2EX is a community of developers, designers and creative people.

© 2021 V2EX