背景:局域网内一台 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 的时候短时间大量连接失败造成的吧),特来问下各位,谢谢!
1
dorothyREN 2020-09-25 17:36:03 +08:00
你这个应该是被服务器 ban 了。
|
2
PUBG98k 2020-09-25 20:08:49 +08:00
看看你的程序是否有一大堆未关闭的连接
|
3
opengps 2020-09-26 10:47:46 +08:00 via Android
看着是你短时间大量连接,可能服务器端把你 ip 拉黑了,也就是一楼说的 ban,你得看下数据库所在服务器的防御策略,或者你换个你的 ip 再试试
|
4
noreplay 2020-09-27 08:52:28 +08:00 via Android
把防火墙都关🐶
|
5
hbolive OP 不想太监,统一回复楼上各位,虽然知道原因,但最后也不知道怎么解决,只有换个 IP,换个 IP 后就行了,然后将另一台电脑换成我原来的 IP,错误也一样,就是 IP 被 ban 了。。
@dorothyREN @PUBG98k @opengps @noreplay |