【django问题集】django.db.utils.OperationalError: (1040, ‘Too many connections‘)

news2024/10/6 1:39:49

一、报错内容

django.db.utils.OperationalError: (1040, 'Too many connections')

主要体现:就是请求不了后台,登录都登录不了。

二、代码优化

原生django配置的mysql连接是没有连接池的功能,会导致mysql连接创建过多导致连接数超过了mysql服务允许的最大连接数。

2.1、使用django-db-connection-pool 实现池功能

python==3.8.10

django==3.2.7

django-db-connection-pool==1.0.7

2.2、django-db-connection-pool配置使用

1、1.0.7版本的网址

GitCode - 全球开发者的开源社区,开源代码托管平台GitCode是面向全球开发者的开源社区,包括原创博客,开源代码托管,代码协作,项目管理等。与开发者社区互动,提升您的研发效率和质量。icon-default.png?t=N7T8https://gitcode.com/altairbow/django-db-connection-pool/tree/1.0.7?init=initRepo2、依赖包

Django>=1.8
SQLAlchemy>=1.2.16
PyMySQL>=0.9.3
cx-Oracle>=6.4.1
psycopg2>=2.8.6

3、settings.py配置

DATABASES = {
    'default': {
        'ENGINE': 'dj_db_conn_pool.backends.mysql',
        'NAME': 'your_database_name',
        'USER': 'your_username',
        'PASSWORD': 'your_password',
        'HOST': 'your_host',
        'PORT': 'your_port',
        'POOL_OPTIONS': {
            'max_connections': 50,
        },
    }
}

# 使用 django-db-connection-pool
DATABASE_POOL_CLASS = 'django_db_geventpool.backends.mysql.base.DatabaseWrapper'
DATABASE_POOL_ARGS = {
    'POOL_SIZE': 10,
    'MAX_OVERFLOW': 10,
}

三、mysql服务优化

3.1、配置最大连接数

1、查看最大连接数

mysql>  SHOW VARIABLES LIKE 'max_connections';

                    

2、查看历史最大连接数

mysql>  SHOW STATUS LIKE 'Max_used_connections';

                        

3、修改允许的最大连接数

临时修改:

mysql>  SET GLOBAL max_connections = 500;

永久修改:(vi /etc/mysql/mysql.conf.d/mysqld.cnf)

[mysqld]
max_connections = 1000

注意:一个连接大概需要2-3MB内存,在配置时,需要考虑服务器内存是否足够。

3.2、配置连接生命周期

wait_timeout 参数:

  • 作用: 定义了一个非交互连接在被自动关闭之前可以保持空闲的秒数。

  • 推荐设置值:

    • 对于 Web 应用程序,可以设置为 300 秒(5分钟)左右。

    • 对于后台程序,可以根据具体场景适当延长,比如 1800 秒(30分钟)或 3600 秒(1小时)。

  • 设置方法

    • #临时生效:
      mysql>  SET GLOBAL wait_timeout = 300;
      
      
      #永久生效:配置文件新增
      [mysqld]
      wait_timeout = 300

interactive_timeout 参数:

  • 作用: 定义了一个交互式连接在被自动关闭之前可以保持空闲的秒数。

  • 推荐设置值:

    • 对于 Web 应用程序,可以设置为 28800 秒(8小时)左右。

    • 对于需要长时间交互的应用程序,可以适当延长,比如 86400 秒(1天)。

  • 设置方法

    • #临时生效
      mysql>  SET GLOBAL interactive_timeout = 28800;
      
      
      #永久生效:配置文件新增
      [mysqld]
      interactive_timeout = 28800

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

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

相关文章

网络安全:什么是SQL注入

文章目录 网络安全:什么是SQL注入引言SQL注入简介工作原理示例代码 攻击类型为什么SQL注入危险结语 网络安全:什么是SQL注入 引言 在数字化时代,数据安全成为了企业和个人最关心的问题之一。SQL注入(SQL Injection)是…

移动操作系统更新管理

移动操作系统更新管理是大多数移动设备管理(MDM)解决方案中提供的一项功能,它允许组织管理移动设备上的操作系统更新。MDM解决方案定期扫描设备以检查可用的移动操作系统更新,并根据配置的策略管理操作系统更新。操作系统更新管理…

vulnhub靶机hacksudoLPE中Challenge-2

二、Challenge-2 1. ar Abusing 这个是要利用suid注意sudo也可以用,但是还是按照要求来 注意使用的suid自然是home文件夹 2. ash abusing 33. atobm Abusing 环境有问题,做不了 34. base32 Abusing 35. bash Abusing 36. cat Abusing 37. chmod Abusin…

我一直看不明白:“C++会被java/python等这些语言替代”

在开始前刚好我有一些资料,是我根据网友给的问题精心整理了一份「C的资料从专业入门到高级教程」, 点个关注在评论区回复“888”之后私信回复“888”,全部无偿共享给大家!!! 有些程序,是既可以…

ETL驱动企业集成转型与数据集成创新

数据集成:企业数智化的核心 数据集成是这一资产发挥价值的关键步骤,它将分散在不同来源的数据汇集到统一的平台,实现数据的集中管理和深入分析。通过这一过程,企业能够打破信息孤岛,提升数据的准确性和可靠性&#xf…

66aix AI生成系统-中文版安装

66aix是一款多功能的AI助手工具,可以帮助您生成独特的内容,美化和修改您的文章内容或,以及生成图像,去除图像背景。同时,它还包括完整功能的语音转换文本系统。 系统要求 PHP PHP 8 Extensions cURL, OpenSSL, mbstrin…

胡说八道(24.6.10)——数电与STM32

至此,信号与系统的简单笔记已经全部都写完了。其实,信号与系统的知识远远不只这些,总之,我的老师没讲完。其真实的原因是不在考试大纲里面。今天,看到一个短视频——学习的意义。其中有句话说,“因为考试不…

在 Visual Studio 2022 中配置 OpenCV

在 Visual Studio 2022 中配置 OpenCV 软件准备系统环境配置VS 2022 环境配置测试 软件准备 Visual Studio 2022 下载链接 OpenCV 下载链接 Visual Studio 的版本与 OpenCV 的 vc 版本需对应好,可以向下兼容: VS 2015 – vc14VS 2017 – vc15VS 2019…

【Python/Pytorch - 网络模型】-- SVD算法

文章目录 文章目录 00 写在前面01 基于Pytorch版本的SVD算代码02 理论知识 00 写在前面 (1)矩阵的奇异值分解在最优化问题、特征值问题、最小二乘方问题、广义逆矩阵问题及统计学等方面都有重要应用; (2)应用&#…

如何挑到高质量的静态IP代理?

在数字化时代,静态住宅IP代理已成为网络活动中不可或缺的一部分。无论是数据采集、网站访问,还是其他需要隐藏真实IP地址的在线活动,高质量的静态住宅IP代理都发挥着至关重要的作用。今天IPIDEA代理IP将详细介绍如何获取高质量的静态住宅IP代…

网站的文章起到什么作用

1.便于用户了解产品服务 如果想要获得更多的用户访问或者转化率,那么网站就得需要高质量、高原创的文章,通过文章可以让用户更好的了解公司的产品和服务,用户会根据自己的需求去选择服务类型,从而可以给公司产生业务订单&am…

HTML语义化

目录 语义化什么是HTML语义化语义化的优点 语义元素微格式 语义化 我们在设计网页时&#xff0c;不应以内容的表现形式来决定使用什么元素包裹&#xff0c;而是应该基于内容的语义来选择元素 <h1>标题</h1> <div>标题</div>它们同样都能表示标题这个…

QT基础入门【环境搭建篇】QT MQTT库的移植和使用(官方mqtt库编译详细教程)

之前写过一篇第三方MQTT库的编译教程,有兴趣的小伙伴可以去看看(QT MQTT库的移植和使用(非官方库qmqtt库)),今天主要讲解官方MQTT库的编译与使用方法(基于QT5.12.1)。 QT的MQTT库有两个,一个是官方库,一个是第三方库,二者的差别就是一个 API 上,使用方面没有太大区…

AIOps在业务运维的最佳应用实践

随着企业IT基础架构的复杂性日益增加&#xff0c;传统运维模式难以满足高效、稳定的业务需求。AIOps&#xff08;人工智能运维&#xff09;作为一种新兴技术&#xff0c;通过数据驱动的自动化和智能化手段&#xff0c;有效提升了IT运维的效率和可靠性。本文将探讨AIOps在业务运…

Vue3中的常见组件通信之`pinia`

Vue3中的常见组件通信之pinia 概述 ​ 在vue3中常见的组件通信有props、mitt、v-model、 r e f s 、 refs、 refs、parent、provide、inject、pinia、slot等。不同的组件关系用不同的传递方式。常见的撘配形式如下表所示。 组件关系传递方式父传子1. props2. v-model3. $ref…

Aigtek功率放大器参数怎么选型的

功率放大器是电子系统中重要的组成部分&#xff0c;选型合适的功率放大器对系统的性能和可靠性至关重要。本文下面安泰电子将介绍如何选型功率放大器的关键步骤和考虑因素。 首先&#xff0c;确定应用需求。在选型功率放大器之前&#xff0c;确定应用需求是至关重要的第一步。了…

Mathtype与word字号对照+Mathtype与word字号对照

字体大小对照表如下 初号44pt 小初36pt 一号26pt 小一24pt 二号22pt 小二18pt 三号16pt 小三15pt 四号14pt 小四12pt 五号10.5pt 小五9pt 六号7.5pt 小六6.5pt 七号5.5pt 八号5pt 1 保存12pt文件 首选选择第一个公式&#xff0c;将其大小改为12pt 然后依次选择 “预置”—…

Canvas倒计时

Canvas倒计时 前言 用Canvas绘制一个倒计时组件&#xff0c;显示距离新年还有多长时间&#xff0c;精确到秒&#xff0c;该倒计时需要实时更新 基础知识点 JS Date() 创建一个新Date对象的唯一方法是通过new 操作符&#xff0c;例如&#xff1a;let now new Date(); 若将…

华为OD机试 - 文件缓存系统 - 双向链表(Java 2024 D卷 100分)

华为OD机试 2024D卷题库疯狂收录中&#xff0c;刷题点这里 专栏导读 本专栏收录于《华为OD机试&#xff08;JAVA&#xff09;真题&#xff08;D卷C卷A卷B卷&#xff09;》。 刷的越多&#xff0c;抽中的概率越大&#xff0c;每一题都有详细的答题思路、详细的代码注释、样例测…

自动生成列表,颜色随机 ,定时执行函数,10秒停止执行函数,按钮执行函数

<!DOCTYPE html> <html lang"zh-CN"> <head><meta charset"UTF-8"><meta name"viewport" content"widthdevice-width, initial-scale1.0"><title>颜色列表Color List</title><style>…