MySQL报异常:
1:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.
2:org.hibernate.exception.JDBCConnectionException: The last packet successfully received from the server was 74,359,500 milliseconds ago. The last packet sent successfully to the server was 74,359,515 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.
解决方案在报错信息中已经很明确了:
1:增加服务器端对客户端的连接超时时间
<1>:Linux系统下的配置文件为/etc/my.cnf,windows中的my.ini,单位为秒,默认为28800秒,即8小时
# 服务器关闭交互式连接前等待活动的秒数
interactive_timeout=28800
# 服务器关闭非交互连接之前等待活动的秒数
wait_timeout=28800
设置完重启.
<2>:在命令行里设置:
会话变量设置/查询: show variables; show variables like 'wait_timeout'; select @@session.wait_timeout; set wait_timeout=10; set session wait_timeout=10; ---------------------------------------------------------- 全局变量设置/查询: set global wait_timeout=60; show global variables like 'wait_timeout' select @@global.wait_timeout; ------------------------------------------------- interactive_timeout 也一样设置和查询;
2:在使用连接前验证连接(tomcat jdbc pool属性设置)
<!-- 数据源配置,使用应用内的Tomcat JDBC连接池 --> <bean id="dataSource" class="org.apache.tomcat.jdbc.pool.DataSource" destroy-method="close"> <!-- Connection Info --> <property name="driverClassName" value="${jdbc.driver}" /> <property name="url" value="${jdbc.url}" /> <property name="username" value="${jdbc.username}" /> <property name="password" value="${jdbc.password}" /> <!-- 初始化连接数,默认为10 --> <property name="initialSize" value="${jdbc.initialSize}"/> <!-- 没有可用连接时,抛出异常前最长等待时间(单位:毫秒,默认30000/30秒) --> <property name="maxWait" value="${jdbc.maxWait}"/> <!-- 同一时间可从连接池中分配的最大连接数 --> <property name="maxActive" value="${jdbc.maxActive}" /> <!-- 连接池中应保持的最小连接数,默认和initialSize的值一样 --> <property name="minIdle" value="${jdbc.minIdle}"/> <!-- 连接池中应保持的最大连接数 --> <property name="maxIdle" value="${jdbc.maxIdle}" /> <!-- 运行"检查已经超时/废弃的连接"的线程频率(毫秒/次),默认为5000/5秒 --> <property name="timeBetweenEvictionRunsMillis" value="${jdbc.timeBetweenEvictionRunsMillis}" /> <!-- 连接超时的最小时间(单位:毫秒,默认为60000/60秒) --> <property name="minEvictableIdleTimeMillis" value="${jdbc.minEvictableIdleTimeMillis}" /> <!-- 取连接前使用validationQuery验证,验证失败则从连接池中去除且尝试取出另一个 --> <property name="testOnBorrow" value="${jdbc.testOnBorrow}"/> <!-- 当连接被放回到连接池中时,使用validationQuery验证连接,无效则去除 --> <property name="testOnReturn" value="${jdbc.testOnReturn}"/> <!-- 每隔timeBetweenEvictionRunsMillis时长使用validationQuery去验证非活动的连接 --> <property name="testWhileIdle" value="${jdbc.testWhileIdle}"/> <!-- 验证的SQL --> <property name="validationQuery" value="${jdbc.validationQuery}"/> <!-- 验证SQL超时时间 --> <property name="validationQueryTimeout" value="${jdbc.validationQueryTimeout}"/> <!-- 连接最大存活时间,0为禁用此选项 --> <property name="maxAge" value="${jdbc.maxAge}"></property> <!-- 不默认提交 --> <property name="defaultAutoCommit" value="false" /> </bean>
3:增加在mysql连接url字符串后面增加连接失败后自动重新连接属性:autoReconnect=true,详见mysql-5.6-en.pdf官方文档.
例如:jdbc.url=jdbc:mysql://localhost:3306/SHAM?useUnicode=true&characterEncoding=utf-8&rewriteBatchedStatements=true&allowMultiQueries=true&autoReconnect=true
相关推荐
1、写在开头 标题之前我想说一下Linux的mysql真的实在是太坑了。太坑了。总是会出现这样那样的你想不到的问题。崩溃了。首先来罗列一下我遇到过的...Cause:com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorExcepti
Cause com.mysql.jdbc.exceptions.jdbc4.CommunicationsException The last packet successfully received from the server was 47,795,922 milliseconds ago. The last packet sent successfully to the server was...
本次异常的具体描述为:“Communications link failure due to underlying exception: **BEGINNESTED EXCEPTION** java.io.EOFException STACK TRACE: java.io.EOFException at com.mysql.jdbc.MysqlIO.readFully...
`com.mysql.jdbc.PacketTooBigException` 是MySQL JDBC驱动抛出的一个异常,它表示在网络传输过程中,发送到服务器的数据包超过了MySQL服务器允许的最大大小。在描述中提到的错误信息 "Packet for query is too ...
在给定的信息中,我们注意到一个具体的错误信息:“com.baomidou.mybatisplus.core.exceptions.MybatisPlusException: Error:GlobalConfigUtils setMetaData Fail !”。这个错误提示表明在使用 MyBatis Plus 时出现...
解决:com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: No operations allowed after statement closed.
C-JDBC,全称Cluster JDBC,是一款用于数据库集群的中间件,它允许应用程序同时访问和操作多个数据库,实现数据的同步交换。以下是对C-JDBC的详细配置方案及其相关知识点的解析: 1. **下载与安装**: - 从官方...
在Centos上部署项目发现一个奇怪的问题,数据库连接一直抛异常。于是花了两个小时搜了各种数据库连接异常导致的原因,最终问题得以解决。同时,把解决过程中搜集到的异常信息汇总一下,当大家遇到...com.mysql.jdbc.exc
Caused by: com.mysql.jdbc.exceptions.jdbc4.MySQLSyntaxErrorException: Access denied for user ''@'localhost' to database 'hibernate' at sun.reflect.NativeConstructorAccessorImpl.new
5. **异常处理**:`com.mysql.jdbc.exceptions`包包含了各种可能的数据库交互异常,如`SQLException`,这些异常在出现问题时被抛出,帮助开发者定位问题。 6. **性能优化**:源代码中包含了一些性能优化策略,例如...
7. **错误处理**:`com.mysql.cj.jdbc.exceptions` 包下的异常类封装了与数据库交互时可能出现的各种错误,便于开发者进行异常处理。 8. **连接池支持**:驱动支持常见的连接池框架,如 C3P0、HikariCP、Druid 等,...
对于MySQL,驱动类名通常是`com.mysql.jdbc.Driver`;Oracle则是`oracle.jdbc.driver.OracleDriver`;而对于SQL Server,驱动类名是`com.microsoft.sqlserver.jdbc.SQLServerDriver`。确保正确选择并输入这些信息,...
MySQL Connector/J 5.1.12 是 MySQL 官方提供的用于 Java 应用程序...3. com.mysql.jdbc.exceptions 包:包含所有由 MySQL Connector/J 抛出的异常类,如 `com.mysql.jdbc.exceptions.MySQLSyntaxErrorException` 和 `...
4. **刷新界面**:重启MyEclipse后,大部分界面应该已经变为中文。如果某些地方仍显示英文,可能是因为汉化不完全或者有遗漏。此时,可以尝试清理MyEclipse的缓存,具体操作是关闭MyEclipse,删除.metadata\.plugins...
1、Caused by: com.MySQL.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 56,201,339 milliseconds ago. The last packet sent successfully to the...
例如,`com.mysql.jdbc.exceptions`包下包含了一系列异常类,用于处理在数据库操作中可能出现的问题。`com.mysql.jdbc.JDBC4Connection`是JDBC 4版本的连接实现,增加了新的特性支持。 深入理解Java MySQL驱动源码...
Exception in thread "main" com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Unknown database 'hrtrain' ``` **解决方法**: - 确认数据库名称是否正确。 - 检查MySQL服务状态,确保其正在运行。 #### 五...
5. **异常处理**:当数据库操作遇到问题时,会抛出特定的异常,如`com.mysql.jdbc.exceptions.MySQLSyntaxErrorException`和`com.mysql.jdbc.exceptions.MySQLIntegrityConstraintViolationException`等。...
6. **异常处理**:`com.mysql.jdbc.exceptions`包包含了所有可能抛出的MySQL特定异常,如`MySQLSyntaxErrorException`、`MySQLIntegrityConstraintViolationException`等,这些异常在遇到错误时被抛出,帮助开发者...
最美POETIZE个人博客系统源码 这是一个 SpringBoot + Vue2 + Vue3 的产物,支持移动端自适应,配有完备的前台和后台管理功能。 网站分两个模块: 博客系统:具有文章,表白墙,图片墙,收藏夹,乐曲,视频播放,...