关于数据库mysql连接超时以及连接池超时的一些问题
1.本文主要整理关于mysql的一些问题
2.首先mysql服务器默认的连接超时和数据库连接超时是两码事,不能混为一谈
3.什么是数据库连接超时呢?
答:数据库连接超时是指当服务连接到数据库但不对其做任何操作时等待到一定时间之后
这个链接就会与数据库断开,当再次对数据库进行操作时会报数据库连接超时或者连接关闭异常
mysql的连接默认最长等待时间为28800s也就是8个小时
解决办法:(1)重启服务(2)把链接等待超时timeout设置长一点
5.什么是数据库连接池的连接超时时间呢?
答:连接池超时时间是指当连接数超过连接池的最大连接数时且没有空闲连接时,
如果再有其他请求需要连接那么该请求会一直等待到连接池配置的最大等待connection-timeout如果还没有
连接那么就会报错,当在最大等待时间内有连接释放了则会从池中拿到释放的连接进行操作
6.查看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;
7.图片
8.用navicat查看mysql的数据库连接
操作步骤:工具->服务器监控->选择需要监控的数据库
9.顺便带上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
当连接数达到最大数之后,经过300s之后连接池中的连接会被释放掉恢复到最小连接数
解释:最小连接数2,最大连接数10,当存在高并发情况下会因为2个连接不够用所以会再创建出8个连接供其使用
这时连接池中已经达到最大连接数其他请求再过来则需要等待其他请求释放
连接才能继续操作,当并发期过去之后,连接池经过一段时间会释放掉连接池中
多出的8个连接数恢复到最初的2个连接数
HikariDataSource参数参考连接:
上一篇: 4、往数据库中添加信息
下一篇: java——添加大量学生用户
推荐阅读
-
【转】MySQL数据库连接超时(wait_timeout)问题的处理
-
thinkPHP数据库全局配置都搞好了,但连接mysql的M('User')操作老是显示超时,求问
-
MySQL数据库连接超时(wait_timeout)问题的处理
-
MySQL数据库连接超时(wait_timeout)问题的处理
-
关于数据库连接池的一些自我理解和使用(以C3P0为例),搭配MySql(8.0以上)
-
Tomcat连接池MySQL数据库8小时连接超时问题解决_MySQL
-
MySQL之—— 使用Hibernate连接MySQL数据库,MySQL连接超时断开的问题
-
MySQL之-使用Hibernate连接MySQL数据库时连接超时断开的问题解决方法
-
Tomcat连接池MySQL数据库8小时连接超时问题解决_MySQL
-
MySQL之—— 使用Hibernate连接MySQL数据库,MySQL连接超时断开的问题