mysql数据库连接异常问题(总结)

mysql数据库连接异常问题(总结)

1.1 前言

    最近项目由1个数据源增加至了3个数据源(连接池使用C3P0),结果各种奇葩的数据库连接问题接踵而至,为防止将来再次遇到同样的问题不犯同样错误,现总结如下。

1.2  An attempt by a client to checkout a Connection has timed out  (连接超时)

  1. 这种情况基本是网络不稳定导致的;再者就是数据源配置参数有异常。

     


     

1.3 com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was 52,420,576 milliseconds ago.  

  1.  这种情况是由于连接池产生的部分连接长时间闲置,已经超过mysql数据库配置的“wait_timeout”设置的超时即断开该连接,而连接池没有校验该连接是否可用就直接被服务调用了,导致连接不可用报错。解决方案如下:

             a、修改C3P0配置参数(推荐):

                   c3p0.testConnectionOnCheckout=true
             b、缩减连接池的连接的生命周期,一般比数据库的等待超时默认8小时内即可(推荐);

             c、增加数据库的等待超时配置为24小时(不推荐);

 

1.4 cannot get a available connection

  1. 这种情况基本是要检查连接池的初始化连接数及最大连接数不够的问题,需要调大点;再者就是数据库可能出了问题。

关键词:连接 数据库 问题 mysql 异常 总结 配置 超时 这种 情况

相关推荐:

服务器响应慢的分析与解决

生产系统 SQL 执行异常原因分析

MyBatis 源码分析 - 内置数据源

mysql安装后服务启动不了

手把手教你实现一个基于Redis的分布式锁

2509-Druid监控功能的深入使用与配置-基于SpringBoot-完全使用 .properties配置文档

容器中的MySQL迁移RDS,会话却“爆了”

分布式--锁

MySQL 2013 lost connection error 详解

分布式锁看这篇就够了