首先,对于这个问题的一些相关知识的说明:数据库
1.当一个链接和数据库创建链接以后,这个链接时可使用的,可是当这个链接不被使用,以后的一段时间以后,MySQL服务器端,可能会主动关闭这个链接,而当你再次再去使用这个链接的时候,就发生了gone away的错误。服务器
对于你的实际现象的解释,就是当你业务量大了以后,你的代码会向MySQL服务器端创建大量的链接,而当某些链接使用完毕后,而没有及时的关闭它,或者继续保持链接的“活性”,从而致使接下来的代码再次使用这个链接的时候,出现了gone away的错误,这是由于MySQL服务端可能已经主动关闭了这个链接。ui
解决办法:服务器端
能够参考一些成熟的MySQL数据库链接方案,通常来讲能够直接使用对应语言的比较成熟的数据库链接库:数据
(Python建议:DBUtils,Java建议Druid)语言
1.创建链接池,系统一启动就维护必定数量的链接,这样能够减小不少关闭以及从新建立带来的系统开销,转而是去维护一个链接池,我须要了就去池子里面去取,我用完了,就归还这个池子,看起来是被关闭了,实际上是被池子收回了。服务端
2.保持链接池中的每一个链接的“活性”,比方说,定时ping它,或者说,当检测到某个链接ping不通的时候,从新建立一个,并用从新建立的链接,去替换掉池子中那个已经断开的链接。时间
等等。这些因素在这些成熟的链接池方案中,也已经被考虑在里面了。ping
最后,但愿我说的对你有些帮助。错误