你是否经常会在你的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
分享到:
相关推荐
### MySQL连接的相关问题及解决办法 #### 一、MySQL服务启动问题及解决方法 在Windows环境中,MySQL服务可能会出现无法启动的问题,表现为无法连接数据库、无法停止或重启MySQL服务,即使重启计算机也无法解决。...
简单的一个C# 与mysql本地管道连接的一个小demo 使用 MySql.Data.dll
### MySQL授权问题解决办法 在处理MySQL数据库时,经常会遇到各种授权问题,这些问题可能会影响到数据库的正常使用和管理。本文将详细介绍如何解决MySQL中的授权问题,包括但不限于如何更改root用户的密码、如何...
### MySQL乱码问题解决办法 在使用MySQL的过程中,经常会出现字符显示乱码的问题,尤其是在处理中文数据时更为常见。本文将详细介绍如何通过多种途径解决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...
如果以上方法都无法解决问题,可能是MySQL版本与操作系统不兼容,或者安装过程出现问题。考虑升级到最新稳定版,或者完全卸载后重新安装。 10. **社区支持** 如果问题仍然存在,不要忘记寻求MySQL社区的帮助。在...
"mybatis连接MySQL8出现的问题解决方法" MyBatis是当前最流行的持久层框架之一,它提供了一个简单的方式来访问数据库。然而,在使用MyBatis连接MySQL8时,可能会出现一些问题。本文将介绍MyBatis连接MySQL8出现的...
MySQL常见问题及解决方法 MySQL 是一种关系型数据库管理系统,它广泛应用于 web 应用程序中。...这些问题和解决方法都是 MySQL 使用过程中常见的问题,希望能够帮助用户解决问题,提高 MySQL 使用效率。
我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...
在IT开发过程中,集成开发环境Eclipse和数据库管理系统...在遇到问题时,检查日志、理解错误信息,并根据上述步骤进行调试和修复,通常能够解决问题。记住,每次更改配置后,都需要重新启动相应的服务以使更改生效。
#### 二、解决问题前的准备工作 在正式解决问题之前,我们需要做一些准备工作: 1. **确保MySQL服务正在运行**:如果MySQL服务没有启动,则需要先启动MySQL服务。 2. **了解MySQL版本**:不同版本的MySQL可能有...
解决这个问题的办法有三种: 1. 增加 MySQL 的 wait_timeout 属性的值。 修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status. wait_timeout =86400 相关参数,...
在使用IntelliJ IDEA进行Java开发并结合MySQL数据库进行调试时,可能会遇到一系列常见的异常问题。以下是一些解决这些问题的方法: 1. **错误提示:Error: java: 程序包 javax.servlet.http 不存在** 当IDEA导入...
根据提供的部分内容,我们可以看到一种解决方案是通过命令行操作来解决问题。下面是具体的步骤: 1. **删除MySQL服务** 首先,可以尝试删除已存在的MySQL服务,然后再重新安装。使用管理员权限打开命令提示符,...
针对以上提到的常见原因,我们可以采取以下几种方法来尝试解决问题: 1. **检查并修复`my.ini`文件**: - 使用文本编辑器打开MySQL的`my.ini`文件,仔细检查其中的配置项是否正确。 - 特别注意监听端口、数据目录...