在某些查询执行的情况下,是否有人面临此类错误? ( jdbc4.CommunicationsException:通信链接失败)
通常,此异常意味着应用程序和mysql之间的通信问题。你可以找到很多关于可能原因的建议。
在我们的案例中没有任何帮助,经过几个小时的调查后发现原因可能完全是其他原因 也许下面的答案会节省一些人的时间:)
答案 0 :(得分:5)
所以,事实证明,原因可能是mysql数据文件的破坏!!实际上,它可能会破坏mysql正常运行大多数查询的方式。
如果找到执行应用程序的查询(抛出CommunicationsException时)并直接执行它,例如在SQLyog中,您将看到:
错误代码:2013
查询期间与MySQL服务器的连接丢失
首先,看一下mysql的域 .err日志文件。如果你有类似的情况,应该报告很多错误,包括如下信息:
InnoDB:磁盘上的数据库页面损坏或失败的
我们已经采取了哪些措施来快速解决问题 - 我们将“innodb_force_recovery”设置为 1 。这意味着对MySQL的指令:让服务器运行,即使它检测到损坏的页面。
设置此项后,CommunicationsException 消失,剩下的就是“简单”数据库恢复;-)
一切顺利,
埃德加