客户端连接mysql 自动断开_MySql连接空闲8小时自动断开的原因及连接池配置方法...
数据库连接超时时间查询
非交互式超时时间,如 JDBC 程序
show global variables like 'wait_timeout';
交互式超时时间,如数据库工具
show global variables like 'interactive_timeout';
MySQL服务器默认的“wait_timeout”是28800秒即8小时,意味着如果一个连接的空闲时间超过8个小时,MySQL将自动断开该连接。
8小时自动断开引起的问题解决办法
a.定时发送JDBC语句(不推荐)
b.增加 MySQL 的 wait_timeout 属性的值 (不推荐)
修改mysql安装目录下的配置文件 my.ini文件(如果没有此文件,复制“my-default.ini”文件,生成“复件 my-default.ini”文件。将“复件 my-default.ini”文件重命名成“my.ini” ),在文件中设置:
wait_timeout=31536000
interactive_timeout=31536000
这两个参数的默认值是8小时(60608=28800)。 注意: 1.wait_timeout的最大值只允许2147483 (24天左右),也可以使用mysql命令对这两个属性进行修改。
c.配置连接池(推荐)
使用数据库连接池 自带功能 定时清理空闲超时的jdbc连接。
show global status like 'Thread%';
Threads_cached--- 服务器端缓存连接;
Threads_connected ---当前打开的连接数
Threads_created ---创建的线程数
Threads_running---正在运行的线程
tips:
a、配置最小连接数5,最大连接数10,则会提前创建5个连接,当不够时会再次创建,但不超过10个。每个连接请求如果未使用则会自动回收销毁,但会保持最小5个连接数不会销毁。
b、数据库连接池和线程池一样,使用链表形式存储(前面是少使用的,后面是最近刚被使用的)。
--获取连接:每次获取链表的头结点,并且删除该头结点的引用关系
--释放连接:将该连接放入链表的后面
//连接数配置为2的响应结果:
第1次发送连接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第1次查询结果:id:5,orderName100
第2次发送连接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第2次查询结果:id:5,orderName100
第3次发送连接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第3次查询结果:id:5,orderName100
第4次发送连接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第4次查询结果:id:5,orderName100
第5次发送连接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第5次查询结果:id:5,orderName100
第6次发送连接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第6次查询结果:id:5,orderName100
第7次发送连接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第7次查询结果:id:5,orderName100
第8次发送连接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第8次查询结果:id:5,orderName100
第9次发送连接:com.mysql.jdbc.JDBC4Connection@6b09bb57
第9次查询结果:id:5,orderName100
第10次发送连接:com.mysql.jdbc.JDBC4Connection@1d16f93d
第10次查询结果:id:5,orderName100
通讯类型
同步调用:基于请求与响应;
异步调用:服务器端单独开启一个线程处理比较耗时间代码;
优点:防止客户端阻塞;
缺点:
1.客户端不能够及时获取到响应结果
2.开启单独一个线程异步处理 有可能会非常消耗cpu资源
连接方式【MySQL JDBC长连接】
长连接:每次建立连接完成之后,会将该连接保存起来实现复用,不会频繁创建连接,避免tcp三次握手和四次挥手。
优点:避免重复创建tcp三次握手和四次挥手(socket)
缺点: 有可能浪费我们服务器端资源;空闲超时时间
应用场景:频繁发送请求提高效率
短连接:每次发送请求完成之后,都会把连接关闭;
优点:避免浪费我们服务器的资源;
缺点: 每次建立连接的时候需要经历tcp三次握手,如果在频繁发送请求的情况下效率有可能会降低;
数据传输模式
单工: 数据单向发送
半双工: 数据双向传输,但不能同时传输 (mysql 采用半双工模式)
全双工:数据双向传输,可以同时传输
设定所接受的包的大小:
show variables like '%max_allowed_packet%';
根据情形不同,其缺省值可能是1M或者4M。
最大值是1G(1073741824),如果设置超过1G,查看最终生效结果也只有1G。
通讯协议
Unix非网络协议、TCP/IP套接字
Unix非网络协议:在linux 操作系统中客户端和服务器端都在同一台电脑上,客户端访问mysql使用Unix 协议非网络协议。
TCP/IP套接字:客户端与服务器不在同一台电脑上 采用网络方式实现通讯
命名管道和内存共享
在window系统中客户端和Mysql服务器在同一台电脑上,可以使用命名管道和共享内存的方式,
命名管道开启:–shared-memory=on/off;
共享内存开启:–enable-named-pipe=on/off;
客户端连接mysql 自动断开_MySql连接空闲8小时自动断开的原因及连接池配置方法...相关推荐
- MySQL+Hibernate下连接空闲8小时自动断开问题解决方案
本文转自http://blog.sina.com.cn/s/blog_6e6bbaf20100uocd.html,所有权利归原作者所有. 前段时间刚完成一个项目,数据库为MySQL5.0,持久层使用H ...
- mysql自带客户端连接服务器,客户端连接mysql服务器的指令 mysql -u root -p 详细讲解及使用实例...
使用此命令首先确保你的mysql运行环境已经搭建好 这是客户端连接mysql服务器的指令,比较全的写法是下面两种 第一个是全拼,第二个是第一个的缩写 mysql --host=localhost -- ...
- 如何在客户端连接MySQL服务呢???
回顾一下:MySQL服务(如何安装MySQL). MySQL客户端连接 MySQL 服务器的步骤如下: 1.数据库首先需要启动用户MySQL客户端(如MySQL自带客户端.CMD命令提示符窗口等等). ...
- mysql重装时1130_客户端连接MySQL数据库时出现错误代码1130的解决办法
在日常使用数据中为了方便管理我们可能会使用客户端来连接MySQL,不过有时可能会出现无法连接. 如果第一次使用客户端连接MySQL数据库那么出现错误代码1130的概率会比较高,原因是禁止连接. ERR ...
- sequel pro 连接mysql_Sequel Pro 客户端连接 MySQL 失败
问题 安装完毕 MySQL,启动 MySQL后,Sequel Pro 连接 MySQL 失败. 账号密码都是正确的,却一直连接不上!! 报错如下: Unable to connect to host ...
- linux查看客户端连接,MySQL—Linux查看客户端连接信息(连接数、进程等)
介绍 在开发或者运维过程中,我们连接数据库的时候突然会遇到"Too many Connections"这种报错信息:这时我们就需要排除一下是哪些程序客户端连接较多而没有释放. 查看 ...
- 客户端连接mysql失败问题
加密方式 原因:客户端连接软件还不支持Mysql8新增加的加密方式caching_sha2_password,将其改为老的加密验证方式:mysql_native_password 解决办法: mysq ...
- 远程客户端连接MysqL数据库太慢解决方案
为什么80%的码农都做不了架构师?>>> 局域网客户端访问mysql 连接慢问题解决. cd /etc/mysql vi my.conf [mysqld] skip-name- ...
- mysql8.x实践系列(3)Qt客户端连接mysql报错:Authentication plugin ‘caching_sha2_password‘ reported error
一.现象描述 Qt客户端远程连接mysql8.x服务器,会报错: Authentication plugin 'caching_sha2_password' reported error:Authen ...
最新文章
- 控制Open With菜单项的注册表键值
- 基于 HTML5 的 WebGL 自定义 3D 摄像头监控模型
- git log 获取构建时间_Docker 运行 Jenkins 自动化构建 .NET Core 项目
- 史上最详细的Android Studio系列教程四--Gradle基础
- Docker+Redis镜像的原理以及部署安装(超详解附截图)
- java对两个表进行排序_Excel工作簿中多个worksheet工作表,如何对工作表进行排序?...
- python常用模块教程_盘点Python常用的模块和包
- 数据结构之图的应用:最小生成树MST(prime算法和Kruskal算法)
- 小数点进位 oracle,使用多个小数点(。)对Oracle中的记录进行排序
- centos 云服务器部署Node.js项目
- 拥抱.NET Core,如何开发一个跨平台类库 (1)
- Python爬虫实践(三) -- 用户全量数据爬取、多媒体信息爬取
- 【路径规划】基于matlab HybridA_Star算法机器人路径规划【含Matlab源码 1390期】
- 基于python+django学生信息管理系统设计与实现(毕业论文+毕设源码)
- 前端获取北京时间_js获取标准北京时间
- K8s之DashBoard
- 本科的控制工程到底学什么?
- 传感网应用开发(中级)网络协议报文详解
- 5.8G微波雷达模块使用,5.8G微波雷达模块工作原理和介绍
- git 报错did not match any file(s) known to git
热门文章
- 字符串大写转小写库函数_PHP程序无需使用库函数即可将字符串转换为大写
- Python 爬取淘宝商品信息栏目
- Redis 6.0 正式版终于发布了!除了多线程还有什么新功能?
- Java14来了!Switch竟如此简单?Lombok也不需要了?来用Idea搭建Java14吧!
- 关于c# SESSION丢失问题解决办法
- 服务器系统上1068错误,错误1068,详细教您启动网络服务错误1068怎么解决
- ssh 脚本 空格字符转换
- 利用NCO 3.0 调用SAP中的函数
- linux冷备机怎么切换,linux – 热备用主机vs冷备用主机?
- 极光实时监听怎么调用_源码分析 Sentinel 实时数据采集实现原理(图文并茂)