你是否经常会在你的log文件中看到下面的exception?
引用
Communications link failure due to underlying exception:
** BEGIN NESTED EXCEPTION **
java.net.SocketException
MESSAGE: Broken pipe
STACKTRACE:
java.net.SocketException: Broken pipe
at java.net.SocketOutputStream.socketWrite0(Native Method)
at java.net.SocketOutputStream.socketWrite(SocketOutputStream.java:92)
at java.net.SocketOutputStream.write(SocketOutputStream.java:136)
at java.io.BufferedOutputStream.flushBuffer(BufferedOutputStream.java:65)
从这个exception中我们可以得出是关于Socket的问题, 那么肯定就是关于网络方面的原因, 比如mysql down了。 或者网络有问题连不上mysql。
mysql会自动关闭掉空闲时间大于wait_timeout的连接。wait_timeout在可以在mysql配置文件里配置,默认的值是28800也就是8个小时。也就是说如果一个connection在8个小时候之内没有用使用过过的话, mysql server会把这个connection销毁掉。 这就是发生这个问题的原因了。 那么如何解决呢? 我们一般都用连接池来保存连接, 一般连接池都会有许多参数让你的连接池更高效。 我们以c3p0作为例子。
http://www.mchange.com/projects/c3p0/index.html, 这个是c3p0的文档,里面有许多参数,但是我们只要注意这个参数就行了。
maxIdleTime以下是对这个参数的解释。
引用
maxIdleTime
Default: 0
Seconds a Connection can remain pooled but unused before being discarded. Zero means idle connections never expire. [See "Basic Pool Configuration"]
在c3p0中maxIdleTime的默认值是0,也就是说永远都不会被expire, 所以解决这个问题的办法就是设置maxIdleTime比mysql的wait_timeout的值小一些就行了。
参考:
http://forums.mysql.com/read.php?39,42763,42767#msg-42767
http://www.mchange.com/projects/c3p0/index.html#maxIdleTime
分享到:
相关推荐
简单的一个C# 与mysql本地管道连接的一个小demo 使用 MySql.Data.dll
### MySQL授权问题解决办法 在处理MySQL数据库时,经常会遇到各种授权问题,这些问题可能会影响到数据库的正常使用和管理。本文将详细介绍如何解决MySQL中的授权问题,包括但不限于如何更改root用户的密码、如何...
### MySQL乱码问题解决办法 在使用MySQL的过程中,经常会出现字符显示乱码的问题,尤其是在处理中文数据时更为常见。本文将详细介绍如何通过多种途径解决MySQL中的乱码问题,包括更改MySQL服务器的字符集设置、调整...
Mysql安装后打开MySQL Command Line Client闪退解决方法 //MySQL的启动方法,先在DOS下切换到mysql的安装目录BIN下然后输入启动mysql服务的命令, 再然后在mysql登录界面输入用户名和命令即可//可以不用输入...
Navicat无法远程连接MySql服务器问题的解决方法写在前面: 操作系统:中标麒麟4.0; 数据库:MySQL5.7.26; JDK:采用中标麒麟系统自带的openjdk; 客户端工具:Navicat; 前置条件: MySQL服务安装完毕; 情景: ...
本文将详细介绍MySQL Connector的用途、安装过程以及解决安装后找不到驱动的问题。 MySQL Connector通常指的是MySQL的ODBC(Open Database Connectivity)驱动程序,它允许应用程序通过ODBC接口与MySQL数据库进行...
* MySQL 服务管理:在解决问题时需要停止和启动 MySQL 服务,使用 safe 模式可以避免一些权限问题。 * MySQL 用户管理:MySQL 的用户管理是非常重要的,需要正确地管理用户权限和密码。 问题 2:ERROR 2002 (HY000)...
本文档旨在解决Mysql安装过程中出现的常见错误,涵盖了多个方面的解决办法,旨在帮助用户快速解决安装问题,从而成功安装Mysql。 1. 安全设置无法应用于数据库 在Mysql安装过程中,可能会出现“安全设置无法应用于...
本文将详细介绍如何解决macOS系统下MySQL中文乱码的问题,通过修改配置文件my.cnf来调整MySQL的字符集,确保中文能够正常显示。 ### 解决方案详解 #### 步骤一:定位my.cnf配置文件 首先,需要找到或创建MySQL的...
标题 "Mybatis破MySql8小时断线问题1" 指的是在使用Mybatis框架与MySQL数据库交互时遇到的一个常见问题,即由于MySQL数据库的连接超时机制导致的8小时断线。描述中提到,当数据库连接闲置时间超过MySQL默认设定的8...
"mybatis连接MySQL8出现的问题解决方法" MyBatis是当前最流行的持久层框架之一,它提供了一个简单的方式来访问数据库。然而,在使用MyBatis连接MySQL8时,可能会出现一些问题。本文将介绍MyBatis连接MySQL8出现的...
MySQL常见问题及解决方法 MySQL 是一种关系型数据库管理系统,它广泛应用于 web 应用程序中。...这些问题和解决方法都是 MySQL 使用过程中常见的问题,希望能够帮助用户解决问题,提高 MySQL 使用效率。
我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...
MySQL是一款广泛使用的开源关系型数据库管理系统,其稳定性和性能深受开发者喜爱。然而,在安装过程中,有时会遇到一些依赖库缺失的问题,导致...遵循上述步骤,大多数情况下都能成功解决问题,让MySQL顺利安装并运行。
#### 二、解决问题前的准备工作 在正式解决问题之前,我们需要做一些准备工作: 1. **确保MySQL服务正在运行**:如果MySQL服务没有启动,则需要先启动MySQL服务。 2. **了解MySQL版本**:不同版本的MySQL可能有...
### MySQL权限不够解决办法 ...通常情况下,可以通过增加必要的权限、刷新权限等方式来解决问题。在实际操作过程中,还需要注意安全性,避免不必要的风险。希望本文能够帮助您有效解决MySQL权限不足的问题。
解决这个问题的办法有三种: 1. 增加 MySQL 的 wait_timeout 属性的值。 修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status. wait_timeout =86400 相关参数,...
在提供的`MYSQL数据库密码忘记解决方案.txt`文件中,可能包含了详细的步骤或额外的提示,建议仔细阅读以获取更多信息。记住,安全永远是第一位的,定期备份数据库以及保持良好的密码管理习惯能帮助避免此类问题的...
在使用IntelliJ IDEA进行Java开发并结合MySQL数据库进行调试时,可能会遇到一系列常见的异常问题。以下是一些解决这些问题的方法: 1. **错误提示:Error: java: 程序包 javax.servlet.http 不存在** 当IDEA导入...
根据提供的部分内容,我们可以看到一种解决方案是通过命令行操作来解决问题。下面是具体的步骤: 1. **删除MySQL服务** 首先,可以尝试删除已存在的MySQL服务,然后再重新安装。使用管理员权限打开命令提示符,...