关于数据库mysql连接超时以及连接池超时的一些问题

本文详细解析了数据库连接超时的原因及解决方法,包括如何调整MySQL和Oracle数据库的连接超时设置,并深入探讨了数据库连接池的连接超时机制及HikariDataSource配置参数的意义。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

1. 数据库连接超时

数据库连接超时是指当服务连接到数据库但不对其做任何操作时等待到一定时间之后,这个链接就会与数据库断开,当再次对数据库进行操作时会报数据库连接超时或者连接关闭异常。mysql的连接默认最长等待时间为28800s也就是8个小时

解决办法:

  1. 重新建立连接;
  2. 把链接等待超时timeout设置长一点
1.1 查看mysql连接最大超时时间
查看mysql数据库服务连接最大超时时间,默认是28800S也就是8小时
show global variables like '%timeout%';
查看mysql数据库允许的最大的连接数
show variables like '%max_connections%';
修改mysql最大连接数:
windows系统在my.ini文件中找max_connections
liunx系统找my.cnf文件
 
 
oracle数据库允许的最大连接数:
select value from v$parameter where name = 'processes';
 
oracle当前的连接数
select count(*) from v$process; 
修改oracle最大连接数:
alter system set processes = 500 scope = spfile;

在这里插入图片描述
在这里插入图片描述
在这里插入图片描述

1.2 用navicat查看mysql的数据库连接

操作步骤:工具->服务器监控->选择需要监控的数据库

在这里插入图片描述

2. 数据库连接池的连接超时

连接池超时时间是指当连接数超过连接池的最大连接数时且没有空闲连接时,如果再有其他请求需要连接那么该请求会一直等待到连接池配置的最大等待connection-timeout如果还没有,连接那么就会报错,当在最大等待时间内有连接释放了则会从池中拿到释放的连接进行操作。

HikariDataSource连接池的配置参数意义:

spring:
  datasource:
      type: com.zaxxer.hikari.HikariDataSource
      driver-class-name: com.mysql.cj.jdbc.Driver
      url: jdbc:mysql://localhost:3306/pc
      username: root
      password: root
      hikari:
        minimum-idle: 5
        
        #连接池中允许的最大连接数。缺省值:10
        maximum-pool-size: 20
        auto-commit: true
        
        #一个连接idle状态的最大时长(毫秒),超时则被释放(retired),缺省:10分钟
        idle-timeout: 30000
        pool-name: DatebookHikariCP
        
         # 等待连接池分配连接的最大时长(毫秒),超过这个时长还没可用的连接则发生SQLException, 缺省:30秒
        connection-timeout: 30000

HikariDataSource参数参考连接:

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值