背景:局域网内一台 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 的时候短时间大量连接失败造成的吧),特来问下各位,谢谢!
这是一个专为移动设备优化的页面(即为了让你能够在 Google 搜索结果里秒开这个页面),如果你希望参与 V2EX 社区的讨论,你可以继续到 V2EX 上打开本讨论主题的完整版本。
V2EX 是创意工作者们的社区,是一个分享自己正在做的有趣事物、交流想法,可以遇见新朋友甚至新机会的地方。
V2EX is a community of developers, designers and creative people.