客户端连接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;

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/558577.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

docker 运行容器_Docker之运行 Django 容器

首先此篇笔记默认你已经安装好了 Docker,并了解 Docker 的基础概念,诸如镜像、容器、以及他们之间的关系等。如果不太了解,等我回头了解清楚以后,可以再写一篇文章阐述一下。(狗头当然,对于这篇文章&#x…

mysql类似的数据库_MemSQL学习笔记-类似MySQL的数据库

http://gigaom.com/cloud/ex-facebookers-launch-memsql-to-make-your-database-fly/-- 多主-从http://www.mysqlops.com/2012/02/14/diy_multi_master_replication.htmlhttp://www.cnblogs.com/liuhao/archive/2012/06/26/2563702.html前facebook员工和前微软sql server工程师…

mysql8.0与mysql7.0_MySQL 5.7 vs 8.0,哪个性能更牛?

测试mysql5.7和mysql8.0分别在读写,选定,只写模式下不同并发时的性能(tps,qps)最早测试使用版本为mysql5.7.22和mysql8.0.15sysbench测试前先重启mysql服务,并清除os的缓存(避免多次测试时命中缓存)每次进行测试都是新生成测试数据…

linux+mysql+导出备份_Linux系统MySQL备份的导入导出的具体分析

问题描述如何对 ECS Linux 系统中的 MySQL 进行备份的导入和导出。处理办法MySQL 备份的导出MySQL 备份的导入MySQL 备份的导出注意:如果您使用的是帮助中心的一键环境配置,那么 MySQL 的安装目录是 /alidata/server/mysql。如果您将 MySQL 安装到其他目…

springmvc使用requestmapping无法访问控制类_研究人员称人类使用的新烟碱类杀虫剂让蜜蜂无法入睡...

来自布里斯托尔大学的科学家进行了研究,显示常见的杀虫剂可以阻止蜜蜂和苍蝇睡个好觉。就像人类一样,许多昆虫也需要睡眠才能正常工作。然而,如果它们接触过新烟碱类杀虫剂,它们的睡眠就会受到影响,新烟碱类杀虫剂是一…

linux 监控mysql脚本_Linux系统MySQL主从同步监控shell脚本

操作系统:CentOS系统目的:定时监控MySQL数据库主从是否同步,如果不同步,记录故障时间,并执行命令使主从恢复同步状态1、创建脚本文件vi /home/crontab/check_mysql_slave.sh #编辑,添加下面代码#!/bin/sh…

mysql 1066解决方法_MySQL查询语法帮助:错误#1066-表格/别名不唯...

我有四个表,user,user_billingprofile,user_shippingprofile和user_address.用户:userId,dateCreateduser_billingprofile:userId,地址user_shippingprofile:userId,地址user_address:随机地址废话这是我必须一目了然地获取用户帐…

python创建新进程_Python:创建新进程

我是Python新手。我应该创建一个有多个菜单的GUI。单击特定菜单时,应启动一个新进程,并且不应挂起用户界面。但我不能做到这一点。在网上搜索之后,我做了一个类似的代码。在在这段代码中,我的目标是使“print deep”语句处于活动状…

python协成_Python协程(上)

几个概念:event_loop 事件循环:程序开启一个无限的循环,程序员会把一些函数注册到事件循环上。当满足事件发生的时候,调用相应的协程函数。coroutine 协程:协程对象,指一个使用async关键字定义的函数&#…

python参数检验框架_基于python的人员识别检测框架研究

import numpy as np # 数据处理的库 Numpyimport cv2 # 图像处理的库 OpenCvimport osimport shutilimport _threadimport wximport csvfrom importlib import reloadfrom skimage import io as iioimport face_recognize_punchcardimport sys# 创建 cv2 摄像头对象#…

js父元素获取子元素img_css,前端_父标签div中包含一个子元素img标签,子元素div标签,为什么img要加上浮动,子元素div才会处于正常位置?,css,前端 - phpStudy...

父标签div中包含一个子元素img标签,子元素div标签,为什么img要加上浮动,子元素div才会处于正常位置?dom结构如图img加上float 子元素div显示正常。不加float div显示错位。附上我写的一个dome测试用的,大家可本地看下究…

android运营商获取本机号码_一键登录已成大势所趋,Android端操作指南来啦!

根据极光(Aurora Mobile)发布的《2019年Q2移动互联网行业数据研究报告》,2019年第二季度,移动网民人均安装APP总量已达56款。面对如此繁多的APP,想在用户的手机中占据一席之地,移动开发者们就不得不努力提升用户体验。而现实却是&…

mysql数据库中删除数据用什么语句_mysql数据库删除数据语句

{"moduleinfo":{"card_count":[{"count_phone":1,"count":1}],"search_count":[{"count_phone":4,"count":4}]},"card":[{"des":"阿里云数据库专家保驾护航,为用户…

spring批量写入mysql数据库_MyBatis-spring和spring JDBC批量插入Mysql的效率比较

工具框架用spring-batch,数据库是mysql(未做特殊优化)。比较数据框架mybatis和spring jdbc的插入效率。Mybatis三种实现:1、mybatis的官方写法Java代码publicvoidbatchInsert1(List poilist)throwsException {SqlSession sqlSession sqlSessionFactory.…

mysql启动触发器_MYSQL中禁用/启动触发器

在使用MYSQL过程中,经常会使用到触发器,但是有时使用不当会造成一些麻烦。有没有一种办法可以控制触发器的调用呢?触发器顾名思义就是数据库在一定的调条件自动调用的SQL语句,触发器拒绝了人工调用的过程,由数据库MYSQ…

mysql数据库权威指南_MySQL_MySQL权威指南读书笔记(三),第二章:MYSQL数据库里面的数 - phpStudy...

MySQL权威指南读书笔记(三)第二章:MYSQL数据库里面的数据用想用好MYSQL,就必须透彻理解MYSQL是如何看待和处理数据的。本章主要讨论了两个问题:一是SQL所能处理的数据值的类型;二是这些数据类型…

mysql 批量替换 所有表_[收藏]批量替换一个数据库中所有表中所有记录

/***********批量替换一个数据库中所有表中所有记录************/declare delStr nvarchar(500)set delStr这里是要替换的字符/**********以下为操作实体************/set nocount ondeclare tableName nvarchar(100),columnName nvarchar(100),tbID int,iRow int,iResult intd…

java偶数和_Java编程计算1-100之间所有偶数的和。

展开全部 public class Demo05ShiCao{public static void main(String[] args){int sum1 = 0; for(int i = 1; i <= 100; i++){if(i % 2 == 0){sum1 +=i; } } System.out.println("结果e5a48de588b63231313335323631343130323136353331333366303138是:" + sum1);…

金额转换java_java金额转换

像商品价格&#xff0c;订单&#xff0c;结算都会涉及到一些金额的问题&#xff0c;为了避免精度丢失通常会做一些处理&#xff0c;常规的系统中金额一般精确到小数点后两位&#xff0c;也就是分&#xff1b;这样数据库在设计的时候金额就直接存储整型数据类型&#xff0c;前端…

java 栈 大小_java – JVM堆栈大小规范

Question, what does 1 MB stack size states in JVM as I have no idea what size a stack frame of?1 MB默认线程堆栈大小意味着每个线程默认具有1MB(1048576字节)的堆栈空间.例外情况是,如果您的代码使用其中一个Thread构造函数创建一个线程,您可以在其中提供堆栈大小参数.…