springboot-mysql断连问题解决

现象:连接空闲8小时候后自动断开连接。报错如下:

### Cause: org.apache.ibatis.transaction.TransactionException: Error configuring AutoCommit.  Your driver may not support getAutoCommit() or setAutoCommit(). Requested setting: false.  Cause: com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 54,683,372 milliseconds ago.  The last packet sent successfully to the server was 54,683,387 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.] with root cause

java.net.SocketException: Connection reset by peer: socket write error
	at java.net.SocketOutputStream.socketWrite0(Native Method) ~[na:1.8.0_181]
	at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:111) ~[na:1.8.0_181]
	at java.net.SocketOutputStream.write(SocketOutputStream.java:155) ~[na:1.8.0_181]
	at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:82) ~[na:1.8.0_181]
	at java.io.BufferedOutputStream.flush(BufferedOutputStream.java:140) ~[na:1.8.0_181]
	at com.mysql.jdbc.MysqlIO.send(MysqlIO.java:3919) ~[mysql-connector-java-5.1.25.jar:na]
	at com.mysql.jdbc.MysqlIO.sendCommand(MysqlIO.java:2551) ~[mysql-connector-java-5.1.25.jar:na]
	at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2731) ~[mysql-connector-java-5.1.25.jar:na]
	at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2809) ~[mysql-connector-java-5.1.25.jar:na]
	at com.mysql.jdbc.ConnectionImpl.setAutoCommit(ConnectionImpl.java:5333) ~[mysql-connector-java-5.1.25.jar:na]
	at sun.reflect.GeneratedMethodAccessor163.invoke(Unknown Source) ~[na:na]
	at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:43) ~[na:1.8.0_181]
	at java.lang.reflect.Method.invoke(Method.java:498) ~[na:1.8.0_181]
    ...
    ...
    ...

解决方式:

在jdbc.properties中将

jdbc.url=jdbc:mysql://192.168.140.4:3306/cm-sites

修改为:

jdbc.url=jdbc:mysql://192.168.140.4:3306/cm-sites?autoReconnect=true

猜你喜欢

转载自blog.csdn.net/sinat_34704593/article/details/83744080