django的mysql设置和mysql服务器闲置时间设置_51CTO博客_django配置mysql


本站和网页 https://blog.51cto.com/u_15057843/4197990 的作者无关,不对其内容负责。快照谨为网络故障时之索引,不代表被搜索网站的即时页面。

django的mysql设置和mysql服务器闲置时间设置_51CTO博客_django配置mysql
django的mysql设置和mysql服务器闲置时间设置
关注
mb5fd86cce321a9
文章目录
django的database设置:通过设置CONN_MAX_AGE<8小时,让客户端主动断开闲置的连接,避免客户端因闲置超时发生连接错误
django的mysql设置和mysql服务器闲置时间设置
转载
mb5fd86cce321a9
2019-03-04 21:42:00
文章标签
django
mysql
sed
客户端
文章分类
代码人生
服务器启动后,每个进程都会主动连接到mysql,要是长时间没有数据交互,mysql会自动断开连接。show variables like  '%timeout%';闲置连接的超时时间由wait_timeout控制,默认8小时。django的database设置:通过设置CONN_MAX_AGE<8小时,让客户端主动断开闲置的连接,避免客户端因闲置超时发生连接错误DATABASES = { 'default': { # 'ENGINE': 'django.db.backends.sqlite3', # 'NAME': os.path.join(BASE_DIR, 'db.sqlite3'), 'ENGINE': 'django.db.backends.mysql', 'NAME': conf.get('mysql', 'database'), 'USER': conf.get('mysql', 'username'), 'PASSWORD': conf.get('mysql', 'password'), # 密码, 'HOST': conf.get('mysql', 'host'), 'PORT': conf.get('mysql', 'port'), # mysql服务器的设置是:闲置时间超过8个小时则服务端主动断开连接,因此这里设置客户端最多显示6个小时,就主动断开连接, # 下次连接时,重新建立新的连接,参考:https://docs.djangoproject.com/en/2.2/ref/databases/ Persistent connections 'CONN_MAX_AGE': 60*60*6, # 数据库每个连接断开的时间设置 'OPTIONS': { # "init_command": "SET sql_mode='STRICT_TRANS_TABLES'", # 'init_command': "SET innodb_strict_mode=1", # https://django-mysql.readthedocs.io/en/latest/checks.html 'init_command': "SET sql_mode='STRICT_TRANS_TABLES', innodb_strict_mode=1", 'charset': 'utf8mb4', }, # Tell Django to build the test database with the 'utf8mb4' character set 'TEST': { 'CHARSET': 'utf8mb4', 'COLLATION': 'utf8mb4_general_ci', }, # 使每一个http请求都是事务性的 # 'ATOMIC_REQUESTS': True }} 原文细读:Persistent connections¶Persistent connections avoid the overhead of re-establishing a connection to the database in each request. They’re controlled by the CONN_MAX_AGE parameter which defines the maximum lifetime of a connection. It can be set independently for each database.The default value is 0, preserving the historical behavior of closing the database connection at the end of each request. To enable persistent connections, set CONN_MAX_AGE to a positive number of seconds. For unlimited persistent connections, set it to None.Connection management¶Django opens a connection to the database when it first makes a database query. It keeps this connection open and reuses it in subsequent requests. Django closes the connection once it exceeds the maximum age defined by CONN_MAX_AGE or when it isn’t usable any longer.In detail, Django automatically opens a connection to the database whenever it needs one and doesn’t have one already — either because this is the first connection, or because the previous connection was closed.At the beginning of each request, Django closes the connection if it has reached its maximum age. If your database terminates idle connections after some time, you should set CONN_MAX_AGE to a lower value, so that Django doesn’t attempt to use a connection that has been terminated by the database server. (This problem may only affect very low traffic sites.)At the end of each request, Django closes the connection if it has reached its maximum age or if it is in an unrecoverable error state. If any database errors have occurred while processing the requests, Django checks whether the connection still works, and closes it if it doesn’t. Thus, database errors affect at most one request; if the connection becomes unusable, the next request gets a fresh connection.Caveats¶Since each thread maintains its own connection, your database must support at least as many simultaneous connections as you have worker threads.Sometimes a database won’t be accessed by the majority of your views, for example because it’s the database of an external system, or thanks to caching. In such cases, you should set CONN_MAX_AGE to a low value or even 0, because it doesn’t make sense to maintain a connection that’s unlikely to be reused. This will help keep the number of simultaneous connections to this database small.The development server creates a new thread for each request it handles, negating the effect of persistent connections. Don’t enable them during development.When Django establishes a connection to the database, it sets up appropriate parameters, depending on the backend being used. If you enable persistent connections, this setup is no longer repeated every request. If you modify parameters such as the connection’s isolation level or time zone, you should either restore Django’s defaults at the end of each request, force an appropriate value at the beginning of each request, or disable persistent connections. 
本文章为转载内容,我们尊重原作者对文章享有的著作权。如有内容错误或侵权问题,欢迎原作者联系我们进行内容更正或删除文章。
收藏
评论
分享
举报
上一篇:[] 系统数据文件和信息
下一篇:PHP自定义错误和异常
提问和评论都可以,用心的回复会被更多人看到
评论
发布评论
全部评论
()
最热
最新
相关文章
解决MySql8小时自动断开连接问题。
MySql 自动断开连接
MySql
数据库
spring
hibernate
自动断开连接
mysql 8小时与24小时 数据
## 实现MySQL 8小时与24小时数据的步骤MySQL是一种常用的关系型数据库管理系统,用于存储和管理结构化数据。在MySQL中,可以通过日期和时间函数来处理时间相关的数据。本文将介绍如何使用MySQL来处理8小时和24小时的时间数据。### 步骤概览下面是实现MySQL 8小时与24小时数据的步骤概览:| 步骤 | 描述 || --- | --- || 步骤1 | 创建一
字段
测试数据
数据
mysql 加8小时
# 实现 "mysql 加8小时" 的步骤和代码示例## 引言在开发过程中,有时候会遇到需要将时间加上一定的小时数的需求。本文将教会你如何在 MySQL 数据库中实现 "mysql 加8小时" 的操作。## 步骤概览以下是实现 "mysql 加8小时" 的步骤概览:```mermaidjourney title 实现 "mysql 加8小时" 的步骤概览 sec
mysql
MySQL
代码示例
MySQL now() 少8小时
# MySQL中的now()函数与时区问题MySQL是一个开源关系型数据库管理系统,被广泛应用于各种应用中。在MySQL中,`now()`函数是一个常用的函数,用于获取当前的日期和时间。然而,有时我们可能会遇到一个问题:在使用`now()`函数获取当前时间时,会发现返回的时间与实际时间相差8小时。本文将介绍这个问题的原因以及如何解决。## 问题描述我们先来看一个简单的例子,使用`now
MySQL
解决方法
sql
mysql时间加8小时
# MySQL时间加8小时MySQL是一种流行的关系型数据库管理系统,用于存储和管理大量的数据。在MySQL中,日期和时间是常见的数据类型,我们经常需要对其进行计算和处理。本文将介绍如何在MySQL中将时间加8小时,以及如何在代码中实现。## MySQL中的日期和时间类型MySQL提供了多种日期和时间类型,包括`DATE`、`TIME`、`DATETIME`和`TIMESTAMP`等。
MySQL
时间间隔
时间戳
mysql8小时 mysql 小时
MySql可以使用的时间格式有:| 格式 | 描述 || %a | 缩写星期名 || %b | 缩写月名 || %c | 月,数值 || %D | 带有英文前缀的月中的天 || %d | 月的天,数值(00-31) || %e | 月的天,数值(0-31) || %f | 微秒 || %H | 小时 (00-23) || %h | 小时 (01-12) || %I
mysql8小时
字段
日期时间
显示格式
MySQL 多了8小时 mysql8小时断开
一、问题描述 最近遇到了一个奇怪的MySql数据库问题,好几次前一天晚上历史数据还正常存储,第二天早上来了看实时数据存储还正常,历史数据不存储了。找了好久也没找到问题。后来仔细想了想,历史数据设置了变化才存储,是不是数据一直不变,就一直没有往数据库写数据,导致MySql的连接太久不用自动断开了。然后就百度了一下,Mysql空闲连接有效时长,一看都说是8个小时就自动断开了。嗯,有点感觉了,应该就是这
MySQL 多了8小时
数据库
c/c++
mysql
历史数据
8小时 mysql 差 mysql8小时断开
问题:mysql 8小时断开连接问题:mysql的默认设置下,当一个连接的空闲时间超过8小时后,mysql 就会断开该连接,而连接池认为连接依然有效。在这种情况下,如果客户端代码向连接池请求连接的话,连接池就会把已经失效的连接返回给客户端,客户端在使用该失效连接的时候即抛出异常。解决方案:可以通过数据库连接池的配置来解决此问题。下面通过例子进行说明为了便于模拟,首先将数据库的最大超时时间改为10s
8小时 mysql 差
bc
mysql
连接池
druid mysql8 8小时 mysql8时间
MySQL:MySQL日期数据类型、MySQL时间类型使用总结 MySQL 日期类型:日期格式、所占存储空间、日期范围 比较。日期类型 存储空间 日期格式 日期范围------------ --------- --------------------- -----------------------------------------datetime 8 bytes YYYY-MM-DD HH:M
druid mysql8 8小时
mysql8.0日期类型
MySQL
日期时间
mysql
mysql8保存时间少8小时 mysql8小时问题解决方案
前一段时间在做一个发邮件的程序,程序是用定时器,每晚凌晨定时发邮件,邮件内容需要从数据库中获取,运行了一天就出问题了。 问题信息如下com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: The last packet successfully received from the server was56588 milliseconds
mysql8保存时间少8小时
mysql
解决方案
c3p0
bc
mysql 每半个小时的数据 mysql8小时问题
前言一个月前,笔者写了篇Flink维表关联方面的文章,其中将Flink异步I/O与Vert.x JDBC Client配合使用,以解决异步从MySQL获取维度数据的需求。但当时有个数据库连接方面的坑没来得及说,正好今天忙得很,随便写几句话来填一下。发现问题程序上到预发布环境的第二天,TaskManager日志中有时出现以下异常。分析问题MySQL服务器会自动关闭空闲时间超过wait_timeout
mysql 每半个小时的数据
连接池
MySQL
连接数
mysql 超时断开 详解 mysql8小时断开
应用程序和数据库建立连接,如果超过8小时应用程序不去访问数据库,数据库就断掉连接 。这时再次访问就会抛出异常,如下所示:java.io.EOFExceptionat com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:1913)at com.mysql.jdbc.MysqlIO.reuseAndReadPacket(MysqlIO.java:230
mysql 超时断开 详解
mysql 数据库连接断掉
mysql
sql
bc
mysql8 时间差8小时 mysql时间不对
文章目录一、问题情况描述二、CST时区混乱1. CST有四种含义2. 什么是时区三、绝对时间与本地时间1. 绝对时间2. 本地时间3. 时区偏移量四、MySQL服务端时区1. system_time_zone(系统时区)2. time_zone(全局时区或当前会话时区)五、问题具体分析关于serverTimezone时间戳与时区无关性主要步骤流程图分析1. 正确情况流程图2. 错误情况流程图错误
mysql8 时间差8小时
java
mysql
MySQL
Java
mysql 只存小时分钟 mysql8小时的问题
一、问题描述:1、预约记录更新数据库时提示错误。2、程序发送成功,但数据库返回失败。3、提示由程序端引起的异常。二、问题分析1、mysql数据库有个经典的“8小时问题”。原因是mysql在默认的情况下,如果发现一个连接空闲时间超过8小时,将会在数据库端自动关闭这个连接。2、software caused connectionabort这个异常的出现是因为客户端网络断了。在服务端/客户端单方面关闭连
mysql 只存小时分钟
mysql
数据库
八小时问题
断开连接
druid避免mysql8小时 druid 执行sql
一、关于DruidDruid是一个JDBC组件,它包括三部分: DruidDriver 代理Driver,能够提供基于Filter-Chain模式的插件体系。 DruidDataSource 高效可管理的数据库连接池。 SQLParser Druid可以做什么? 1) 可以监控数据库访问性能,Druid内置提供了一个功能强大的StatFilter插件,能够详细统计SQL的执行性能,这对于线上
druid避免mysql8小时
数据库连接池
sql
druid
数据库
8小时空闲后连接失效 mysql mysql8小时问题解决方案
最近做的项目用的mysql数据库,前天挂在服务器上,昨天早晨上班一来,同事就说API数据接口访问不了了,我马上mstsc登陆服务器看,报错了。马上重启tomcat,结果还能正常运行,当时没管,今天过来又出现相同的问题,错误代码网上一查,原来是MySql8小时的问题。MySql8小时问题:MySQL 的默认设置下,当一个连接的空闲时间超过8小时后,MySQL解决方案一:增加 MySQL 的
8小时空闲后连接失效 mysql
mysql八小时
proxool
proxool连接池
连接池
docker 安装 mysql 时间误差8小时 docker部署mysql8
文章目录一、docker部署MySQL1.1.拉取镜像1.2.查看镜像1.4.启动容器1.3. 创建挂载目录1.5.复制容器配置文件到挂载目录1.6.销毁容器1.7.挂载方式启动容器1.4. 自定义my.cnf文件1.6.mycnf配置参数参考二、部署中遇到的问题及解决方案2.1.启动MYSQL服务时出现无法创建/var/log/error.log2.2.Failed to access dir
docker
数据库
mysql
MySQL
MySQL 8小时问题
基于 MySQL的Web网站在一段时间后会经常处于无法响应的状态,或者响应非常慢,这是由于数据库连接自动关闭了。 在MySQL Command Line Client中执行show variables like '%timeout%' 中我们可以看到有两个变量wait_timeout和interactive-timeout,它们的默认值都为28800秒,即为8小时。 也就是说默认情况下,Mysql在经过8小时(28800秒)不使用后会自动关闭已打开的连接。 1.为了解决这个问题,对于MySQL5之前的版本,如Mysql4.x,...
mysql
连接池
数据库连接
服务器
解决方法
mysql 小时+1 mysql时间减8小时
发现评论时间比本地时间晚8小时,原因:mysql默认时区选择了CST解决办法:Ubuntu系统环境下:1、检查mysql系统时区1. 进入mysql:mysql -u root -p2. mysql>show variables like '%time_zone%';3. 通过命令在线修改:1. 设置为北京时间:1. mysql> set time_zone='+8:00';
mysql 现在小于时间戳 语句
mysql
Ubuntu
系统环境
mb5fd86cce321a9
关注
私信
近期文章
1.恒创科技:轻量型服务器能支撑多少人访问?
2.Go语言数组
3.优艾智合复合移动机器人应用于制造车间
4.BIO,NIO,AIO的理解
5.VVICAPI接口解析,实现根据ID取商品详情
文章目录
django的database设置:通过设置CONN_MAX_AGE<8小时,让客户端主动断开闲置的连接,避免客户端因闲置超时发生连接错误
每日签到
意见反馈
举报文章
请选择举报类型
内容侵权
涉嫌营销
内容抄袭
违法信息
其他
具体原因
包含不真实信息
涉及个人隐私
原文链接(必填)
补充说明
0/200
上传截图
格式支持JPEG/PNG/JPG,图片不超过1.9M
取消
确认
已经收到您得举报信息,我们会尽快审核
收藏
评论
分享
如有误判或任何疑问,可联系 「51CTO博客客服 」申诉及反馈。
我知道了
51CTO首页
内容精选
博客
学堂
精培
企业培训
CTO训练营
智能汽车
开源基础软件社区
WOT全球技术创新大会
公众号矩阵
移动端
短视频
免费课程
课程排行
直播课
软考学堂
精品班
厂商认证
IT技术
2023年软考
PMP项目管理
在线学习
企业服务
CTO训练营
技术经理研习营
LeaTech峰会
文章
资源
问答
开源课堂
专栏
直播
51CTO
开源基础软件社区
51CTO技术栈
51CTO官微
51CTO学堂
51CTO博客
CTO训练营
开源基础软件社区订阅号
51CTO学堂APP
51CTO学堂企业版APP
开源基础软件社区视频号
51CTO博客
首页
关注
排行榜
订阅专栏
搜索历史
清空
热门搜索
查看【
】的结果
写文章
创作中心
登录注册
Copyright 2005-2023 51CTO.COM
版权所有 京ICP证060544号
关于我们
官方博客
全部文章
热门标签
班级博客
了解我们
在线客服
网站地图
意见反馈
友情链接
开源基础软件社区
51CTO学堂
51CTO
汽车开发者社区