`
dengyin2000
  • 浏览: 1225443 次
  • 性别: Icon_minigender_1
  • 来自: 广州
社区版块
存档分类
最新评论

Mysql Broken pipe问题的解决办法。

阅读更多
你是否经常会在你的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
2
1
分享到:
评论

相关推荐

    C#与MySQL本地管道pipe连接

    简单的一个C# 与mysql本地管道连接的一个小demo 使用 MySql.Data.dll

    mysql乱码问题解决办法

    ### MySQL乱码问题解决办法 在使用MySQL的过程中,经常会出现字符显示乱码的问题,尤其是在处理中文数据时更为常见。本文将详细介绍如何通过多种途径解决MySQL中的乱码问题,包括更改MySQL服务器的字符集设置、调整...

    mysql登录闪屏问题解决办法.txt

    Mysql安装后打开MySQL Command Line Client闪退解决方法 //MySQL的启动方法,先在DOS下切换到mysql的安装目录BIN下然后输入启动mysql服务的命令, 再然后在mysql登录界面输入用户名和命令即可//可以不用输入...

    Navicat出现无法远程连接MySql服务器问题的解决办法

    Navicat无法远程连接MySql服务器问题的解决方法写在前面: 操作系统:中标麒麟4.0; 数据库:MySQL5.7.26; JDK:采用中标麒麟系统自带的openjdk; 客户端工具:Navicat; 前置条件: MySQL服务安装完毕; 情景: ...

    Mysql-connector及解决办法

    本文将详细介绍MySQL Connector的用途、安装过程以及解决安装后找不到驱动的问题。 MySQL Connector通常指的是MySQL的ODBC(Open Database Connectivity)驱动程序,它允许应用程序通过ODBC接口与MySQL数据库进行...

    centos 7.1 mysql5.7.12常见问题解决

    * MySQL 服务管理:在解决问题时需要停止和启动 MySQL 服务,使用 safe 模式可以避免一些权限问题。 * MySQL 用户管理:MySQL 的用户管理是非常重要的,需要正确地管理用户权限和密码。 问题 2:ERROR 2002 (HY000)...

    Mysql安装失败的解决办法.docx

    本文档旨在解决Mysql安装过程中出现的常见错误,涵盖了多个方面的解决办法,旨在帮助用户快速解决安装问题,从而成功安装Mysql。 1. 安全设置无法应用于数据库 在Mysql安装过程中,可能会出现“安全设置无法应用于...

    mac MySQL中文乱码解决办法

    本文将详细介绍如何解决macOS系统下MySQL中文乱码的问题,通过修改配置文件my.cnf来调整MySQL的字符集,确保中文能够正常显示。 ### 解决方案详解 #### 步骤一:定位my.cnf配置文件 首先,需要找到或创建MySQL的...

    Mybatis破MySql8小时断线问题1

    标题 "Mybatis破MySql8小时断线问题1" 指的是在使用Mybatis框架与MySQL数据库交互时遇到的一个常见问题,即由于MySQL数据库的连接超时机制导致的8小时断线。描述中提到,当数据库连接闲置时间超过MySQL默认设定的8...

    mysql没法启动的解决办法

    如果以上方法都无法解决问题,可能是MySQL版本与操作系统不兼容,或者安装过程出现问题。考虑升级到最新稳定版,或者完全卸载后重新安装。 10. **社区支持** 如果问题仍然存在,不要忘记寻求MySQL社区的帮助。在...

    mybatis连接MySQL8出现的问题解决方法

    "mybatis连接MySQL8出现的问题解决方法" MyBatis是当前最流行的持久层框架之一,它提供了一个简单的方式来访问数据库。然而,在使用MyBatis连接MySQL8时,可能会出现一些问题。本文将介绍MyBatis连接MySQL8出现的...

    MySQL常见问题及解决方法

    MySQL常见问题及解决方法 MySQL 是一种关系型数据库管理系统,它广泛应用于 web 应用程序中。...这些问题和解决方法都是 MySQL 使用过程中常见的问题,希望能够帮助用户解决问题,提高 MySQL 使用效率。

    MyEclipse连接MySQL数据库报错解决办法

    我们现在一般网站都是利用的MySQL数据库搭建网站的,但是在网上看到很多网友吐槽数据库连接不上的问题,现在我就结合相关资料向提出一些我个人的见解,希望对大家解决问题有帮助。 一般MySQL连接不上,可能有两大...

    mysql安装缺失库解决办法

    MySQL是一款广泛使用的开源关系型数据库管理系统,其稳定性和性能深受开发者喜爱。然而,在安装过程中,有时会遇到一些依赖库缺失的问题,导致...遵循上述步骤,大多数情况下都能成功解决问题,让MySQL顺利安装并运行。

    MYSQL密码过期问题解决

    #### 二、解决问题前的准备工作 在正式解决问题之前,我们需要做一些准备工作: 1. **确保MySQL服务正在运行**:如果MySQL服务没有启动,则需要先启动MySQL服务。 2. **了解MySQL版本**:不同版本的MySQL可能有...

    MYSQL权限不够解决办法

    ### MySQL权限不够解决办法 ...通常情况下,可以通过增加必要的权限、刷新权限等方式来解决问题。在实际操作过程中,还需要注意安全性,避免不必要的风险。希望本文能够帮助您有效解决MySQL权限不足的问题。

    mysql连接的空闲时间超过8小时后 MySQL自动断开该连接解决方案

    解决这个问题的办法有三种: 1. 增加 MySQL 的 wait_timeout 属性的值。 修改 /etc/mysql/my.cnf文件,在 [mysqld] 节中设置: # Set a connection to wait 8hours in idle status. wait_timeout =86400 相关参数,...

    mysql数据库密码忘记解决办法

    在提供的`MYSQL数据库密码忘记解决方案.txt`文件中,可能包含了详细的步骤或额外的提示,建议仔细阅读以获取更多信息。记住,安全永远是第一位的,定期备份数据库以及保持良好的密码管理习惯能帮助避免此类问题的...

    MYSQL 服务无法启动 1067 解决办法

    根据提供的部分内容,我们可以看到一种解决方案是通过命令行操作来解决问题。下面是具体的步骤: 1. **删除MySQL服务** 首先,可以尝试删除已存在的MySQL服务,然后再重新安装。使用管理员权限打开命令提示符,...

    MYSQL服务无法启动1067解决办法

    针对以上提到的常见原因,我们可以采取以下几种方法来尝试解决问题: 1. **检查并修复`my.ini`文件**: - 使用文本编辑器打开MySQL的`my.ini`文件,仔细检查其中的配置项是否正确。 - 特别注意监听端口、数据目录...

Global site tag (gtag.js) - Google Analytics