项目在访问mysql数据库时,常会出现Communications link failure错误,具体貌似是一个空闲连接超过数据库设置的"wait_timeout",MySQL会将该个连接out掉,而mysql连接池还认为该连接是有效的(MySQL的wait_timeout设置的参数跟连接池设置的超时时间不一致,wait_timeout > 连接池所设置的时间),因此错误就出现了
网上看了一下各种方法,觉得比较靠谱的解决方法
第一 :在连接数据库的url上,添加参数 &autoReconnect=true&failOverReadOnly=false
第二:
修改my.cnf: (未找到my.cnf,直接改的my.ini文件)
[mysqld]
wait_timeout=31536000
interactive_timeout=31536000
问题不知是否已经解决,大家还有别的其它的方法么?
还有一个问题,如上所示的问题出现原因,为什么感觉这个问题出现并没有什么固定的周期,而感觉是随机出现。并且请教大家的另一个问题是mysql是如何分配连接的,不同的连接之间如何区别。每一次连接都会分配一个连接么?
来源:oschina
链接:https://my.oschina.net/u/1046280/blog/414227