1,问题现象:
com.mysql.jdbc.CommunicationsException: The last packet successfully received from the server was58129 seconds ago.The last packet sent successfully to the server was 58129 seconds ago, which 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.
解决办法:
如果连接闲置8小时 (8小时内没有进行数据库操作), mysql就会自动断开连接, 要重启tomcat.
不用hibernate的话, connection url加参数: autoReconnect=true
用hibernate的话, 加如下属性:
<property name="connection.autoReconnect">true</property>
<property name="connection.autoReconnectForPools">true</property>
<property name="connection.is-connection-validation-required">true</property>
要是还用c3p0连接池:
<property name="hibernate.c3p0.acquire_increment">1</property>
<property name="hibernate.c3p0.idle_test_period">0</property>
<property name="hibernate.c3p0.timeout">0</property>
<property name="hibernate.c3p0.validate">true</property>
以上转载链接地址:http://blog.aqsc.cn/article.php?type=blog&itemid=1016
2,另外:关于Mysql链接参数的说明如下:
mysql JDBC Driver
常用的有两个,一个是gjt(Giant Java Tree)组织提供的mysql驱动,其JDBC Driver名称(JAVA类名)为:org.gjt.mm.mysql.Driver
详情请参见网站:http://www.gjt.org/
或在本网站下载mysql JDBC Driver(mm.jar)
另一个是mysql官方提供的JDBC Driver,其JAVA类名为:com.mysql.jdbc.Driver
驱动下载网址:http://dev.mysql.com/downloads/,进入其中的MySQL Connector/J区域下载。
mysql JDBC URL格式如下:
jdbc:mysql://[host:port],[host:port].../[database][?参数名1][=参数值1][&参数名2][=参数值2]...
现只列举几个重要的参数,如下表所示:
参数名称 | 参数说明 | 缺省值 | 最低版本要求 |
user | 数据库用户名(用于连接数据库) | 所有版本 | |
password | 用户密码(用于连接数据库) | 所有版本 | |
useUnicode | 是否使用Unicode字符集,如果参数characterEncoding设置为gb2312或gbk,本参数值必须设置为true | false | 1.1g |
characterEncoding | 当useUnicode设置为true时,指定字符编码。比如可设置为gb2312或gbk | false | 1.1g |
autoReconnect | 当数据库连接异常中断时,是否自动重新连接? | false | 1.1 |
autoReconnectForPools | 是否使用针对数据库连接池的重连策略 | false | 3.1.3 |
failOverReadOnly | 自动重连成功后,连接是否设置为只读? | true | 3.0.12 |
maxReconnects | autoReconnect设置为true时,重试连接的次数 | 3 | 1.1 |
initialTimeout | autoReconnect设置为true时,两次重连之间的时间间隔,单位:秒 | 2 | 1.1 |
connectTimeout | 和数据库服务器建立socket连接时的超时,单位:毫秒。 0表示永不超时,适用于JDK 1.4及更高版本 | 0 | 3.0.1 |
socketTimeout | socket操作(读写)超时,单位:毫秒。 0表示永不超时 | 0 | 3.0.1 |
对应中文环境,通常mysql连接URL可以设置为:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk&autoReconnect=true&failOverReadOnly=false
在使用数据库连接池的情况下,最好设置如下两个参数:
autoReconnect=true&failOverReadOnly=false
需要注意的是,在xml配置文件中,url中的&符号需要转义成&。比如在tomcat的server.xml中配置数据库连接池时,mysql jdbc url样例如下:
jdbc:mysql://localhost:3306/test?user=root&password=&useUnicode=true&characterEncoding=gbk
&autoReconnect=true&failOverReadOnly=false
其他参数请参见mysql jdbc官方文档: MySQL Connector/J Documentation
本文来源于:http://blog.csdn.net/bluesnail216/article/details/15810119
相关推荐
hibernate自动重新连接数据库proxool的使用及配置
dbcp连接池优化详解,主要是如何应对链接僵死的现象
serverTimezone=UTC&useUnicode=true&characterEncoding=utf8&autoReconnect=true&allowMultiQueries=true&useSSL=false username: root password: 123456 默认用户名和密码为 root / 123456 默认数据库名为:...
maxWait="10000" username="(此处填你的数据库用户名)" password="(此处填你的数据库密码)" driverClassName="com.mysql.jdbc.Driver" url="jdbc:mysql://localhost:3306/ccs?autoReconnect=true" /> ...
useUnicode=true&characterEncoding=GB2312&autoReconnect=true jdbc.username.mysql=root jdbc.password.mysql=root 3、 Web容器:tomcat6.x 4、 页面访问路径: 论坛首页: http://localhost:8080/bbs 后台管理...
c3p0 重新自动连接 c3p0 重新自动连接 c3p0 重新自动连接 &autoReconnect=true
autoReconnect=true&characterEncoging=utf8&zeroDateTimeBehavior=convertToNull 3. 完整的配置参数参考intouch2.war!\WEB-INF\config\config.xml 4. 配置文件config.xml中的mail.upflow.com换成实际的...
一.开发环境 IDEA + JDK8 + MySQL5.7 + navicate 二.技术栈 Springboot+Mybatis+layui 三....数据库地址url修改为 spring.datasource.url=jdbc:mysql://localhost:3306/score?...autoReconnect=true&use
自动重新连接自动重新连接 。 该脚本适用于非订户。 当您打开新的IRCCloud页面时,此脚本将重新连接到所需的断开连接的网络。 支持的浏览器:带有Firefox和带有Chrome
<Resource driverClassName=...autoReconnect=true" />
数据库对象 Java 轻量级库,用于在基于 JDBC 的关系数据库中存储和... autoReconnect=true maxReconnects=3 用法 定义一个实体: @DbEntity(name = "user") public class User { ..... } 定义一个属性: @Db
autoReconnect=true&useUnicode=true&characterEncoding=GB2312</value><br/> </parameter><br/> <parameter><br/> <name>username</name><br/> <value>root</value><br/> </parameter><br/> <parameter><br/> ...
OpenAMEE 平台 在本地运行平台 在 settings.xml 中创建一个 Maven 配置文件 ...autoReconnect=true & autoReconnectForPools=true & useCompression=false < rabbitmq>localhost</ rabbitmq>
修改mysql 8.0版本使用 server.servlet.context...characterEncoding=utf8&connectTimeout=1000&socketTimeout=3000&autoReconnect=true&useSSL=false&serverTimezone=GMT%2B8 db.user=root db.password=123456
var autoReconnect = true; var autoMark = true; var slack = new Slack(authToken, autoReconnect, autoMark); slack.on('open', function() { console.log("opened"); }); slack.on('message', function...
autoReconnect=true&useUnicode=true&characterEncoding=GB2312</value><br/> </parameter><br/> <parameter><br/> <name>username</name><br/> <value>root</value><br/> </parameter><br/> <parameter><br/> ...
#demo中有一个对数据库的简单操作,数据库链接句柄net.pocrd.demo.datasource.url=jdbc:mysql://127.0.0.1:3306/demo?autoReconnect=true&useUnicode=true&characterset=utf-8#数据库用户名...
autoReconnect=true&useSSL=false " export SPRING_DATASOURCE_USERNAME= " springuser " export SPRING_DATASOURCE_PASSWORD= " ThePassword " 要求 Java JDK 可选的: Mysql(仅在需要持久性数据存储时才需要。...
autoReconnect=true <property name="user">root <property name="password">password <property name="initialPoolSize">10 <property name="minPoolSize">10 <property name="maxPoolSize">20 ...
autoReconnect=true&useUnicode=true&characterEncoding=utf-8 <property name="username"> <value>empty <property name="password"> <value>empty 在dataSourceConfig.properties中配置数据库...