Types: [java.lang.Integer, java.lang.Long, java.lang.Long]
org.springframework.transaction.CannotCreateTransactionException: Could not open JDBC Connection for transaction; nested exception is com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 64,474,527 milliseconds ago. The last packet sent successfully to the server was 64,474,527 milliseconds ago. is longer than the server configured value of 'wait_timeout'. You should consider either expiring and/or testing connection validity before use in your application, increasing the server configured values for client timeouts, or using the Connector/J connection property 'autoReconnect=true' to avoid this problem.
更改此服务器设置解决以上问题
-
参考:http://blog.csdn.net/zljjava/article/details/7996091
unu lab:
[lab ] add autoReconnect=true
[popexizhi:16/1/13 测试,没有效果还是提示这个问题]
-------------------------------------------------------------------------------------------------------------
du lab:
“interactive_timeout:服务器关闭交互式连接前等待活动的秒数。交互式客户端定义为在mysql_real_connect()中使用CLIENT_INTERACTIVE选项的客户端。又见wait_timeout
wait_timeout:服务器关闭非交互连接之前等待活动的秒数。在线程启动时,根据全局wait_timeout值或全局interactive_timeout值初始化会话wait_timeout值,取决于客户端类型(由mysql_real_connect()的连接选项CLIENT_INTERACTIVE定义),又见interactive_timeout
如此看来,两个变量是共同控制的,那么都必须对他们进行修改了。继续深入这两个变量wait_timeout的取值范围是1-2147483(Windows),1-31536000(linux),interactive_time取值随wait_timeout变动,它们的默认值都是28800。
MySQL的系统变量由配置文件控制,当配置文件中不配置时,系统使用默认值,这个28800就是默认值。要修改就只能在配置文件里修改。Windows下在%MySQL HOME%/bin下有mysql.ini配置文件,打开后在如下位置添加两个变量,赋值。
”
[lab] 修改数据库设置吧
mysql 安装没有my.cnf 文件
参考:http://yangrenjun.iteye.com/blog/1426525
“MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL”
所以pope自己拷贝了一个 ,没有修改就放到了etc下测试一下
要重启mysql时,发现连init.d中的应用都没有添加
参考:http://www.xker.com/page/e2011/0217/100202.html
“MySQL加入到系统服务里面cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld ”自己添加了一下,顺便看了看mysql.server的内容,嘻嘻,参数也不多,回头可以好好看一下了。最后测试了一下,在my.cnf 中加入两个变量wait_timeout=388000interactive_time=388000在mysql中查询:show variables like '%timeout%';| wait_timeout | 388000 |+----------------------------+--------+ok了,等明天早晨看效果了。:)[lab] 还是不可以,提示一样的,现在考虑是wait_timeout 和interactive_time的单位问题吗?是毫秒?go一下,修改 明天继续测试go 一下参见:http://dev.mysql.com/doc/refman/5.0/en/mysql-real-connect.html单位是seconds,这项目就是说这个项目对这个问题是没有效果的[popexizhi: 好奇怪的事,18/1/13,昨天就早晨重启了一下tomcat什么参数也没有修改,今天早晨这个问题自动没有了?那我昨天早晨看到的问题,是因为只修改数据库后重启db没有重启tomcat的原因吗?不知道,这个可以作为下一个lab的内容doing了。这个lab可以到此结束了,ok,好诡异的feel]
-
unu
[doing] 总结上文学到的内容
-
unu: 没有/etc/my.cnf 和 mysqld的服务如何做
“MySQL在启动时自动使用/usr/share/mysql目录下的my-medium.cnf文件,这种说法仅限于rpm包安装的MySQL”
“MySQL加入到系统服务里面 cp /usr/local/mysql/share/mysql/mysql.server /etc/init.d/mysqld ”
du:
my.cnf 中添加设置内容,解决超时连接问题
在my.cnf 中加入两个变量 (单位:秒)wait_timeout=388000interactive_time=388000在mysql中查询:show variables like '%timeout%';| wait_timeout | 388000 |+----------------------------+--------+
[lab] 修改mysql的设置后重启mysql,不重启tomcat,重现问题
tri
[lab] try 修改应用连接中的
autoReconnect=true
-
unu: 没有/etc/my.cnf 和 mysqld的服务如何做
-
参考:http://blog.csdn.net/zljjava/article/details/7996091
html tool
2013年1月18日星期五
tomcat-mysql 连接问题 (附解决没有/etc/my.cnf 和启动服务的问题)
订阅:
博文评论 (Atom)
没有评论:
发表评论