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系统找myf文件
 
 
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参数参考连接:

  • https://www.jianshu/p/c1a5bc20eb0b
  • https://blog.csdn/ssxueyi/article/details/83505322

更多推荐

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