【MySQL进阶之路】生产案例:数据库无法连接,Too many connections

时间:2024-02-11 22:45:51 标签:  进阶  

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送!

在我后台回复 「资料」 可领取编程高频电子书
在我后台回复「面试」可领取硬核面试笔记

文章导读地址:点击查看文章导读!

感谢你的关注!

在这里插入图片描述

生产案例:数据库无法连接,Too many connections

在这个生产案例中:

数据库被部署在了一个很高配的服务器上,内存有 64GB

Java 应用部署在两台机器上,每个 Java 应用设置的连接池的最大数量为 200,也就是每个 Java 应用可以和 MySQL 建立 200 个连接,那么 2 个 Java 应用也就和 MySQL 建立 400 个连接

但是此时数据库出现了异常,报错 Too many connections,也就是数据库给你说连接已经太多了,无法再建立了

请添加图片描述

对于 64GB 的高配服务器来说,不可能连 400 个连接都没办法建立

造成这个问题的原因其实就是 Linux 服务器的文件句柄数量的设置,默认情况下是 1024,由于在服务器中还有其他应用占用了一部分文件句柄数量,从而导致留给 MySQL 建立连接的文件句柄数量不够,因此无法建立连接!

为什么文件句柄数量会限制 MySQL 的连接数量呢?

因为在 Linux 服务器中,一切皆文件,因此 MySQL 建立的连接都会作为文件存在,因此文件句柄数量限制着 MySQL 无法建立太多的连接!

修改文件句柄数量

vi /etc/security/limits.conf
# 添加如下行
* soft nofile 65535
* hard nofile 65535

修改之后,问题就可以解决了

重启当前 linux 服务器的会话(也就是将 xshell 关闭之后,再重新连接上),使用命令查看修改是否生效:

# 显示当前用户的最大文件描述符限制可以使用以下命令:
ulimit -n

在 Linux 中,为了避免某个进程耗光了机器的所有资源,因此默认情况下会对进程以及用户所打开的文件句柄数量进行限制的,因此在生产环境部署系统之后,需要对 Linux 内核参数做出一些调整,来让系统达到比较好的性能

就比如对于 Kafka 来说,如果不优化 Linux 内核参数的话,就会导致 Kafka 无法创建足够多的线程运行

来源:分享自作者个人站点/博客

智能推荐

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书&#x

标签:进阶  

MySQL 时不时出现Too many connections报错,重启MySQL就好了 但是过段时间又出现 一、解决方案: 1.修改mysql最大连接数 set global max_connections=500;  以上是修改立即生效的,重启MySQL就会还原回去 在MySQL配置文件修改 max_connections = 400 修改完之后,重启MySQL就会永久生效 

标签:报错  

MySQL 时不时出现Too many connections报错,重启MySQL就好了 但是过段时间又出现 一、解决方案: 1.修改mysql最大连接数 set global max_connections=500;  以上是修改立即生效的,重启MySQL就会还原回去 在MySQL配置文件修改 max_connections = 400 修改完之后,重启MySQL就会永久生效 

标签:报错  

欢迎关注公众号(通过文章导读关注:【11来了】),及时收到 AI 前沿项目工具及新技术的推送! 在我后台回复 「资料」 可领取编程高频电子书&#x

标签:进阶  

一、约束 1.外键约束 外键约束概念 让表和表之间产生关系,从而保证数据的准确性!

标签:进阶  

文章目录 openGauss学习笔记-206 openGauss 数据库运维-常见故障定位案例-too many clients already206.1 高并发报错“too many client

标签:学习笔记  

文章目录 一、视图1.1 含义1.2 操作1.2.1 创建视图1.2.2 视图的修改1.2.3 删除视图1.

标签:视图  

DataX同步Mysql数据报错错误信息2023-02-13 09:58:20.735 [main] WARN Engine - prioriy set to 0, because NumberFormatException, the value is: null2023-02-13 09:58:20.738 [main] INFO PerfTrace - PerfTrace traceId=job_-1, isEnable=false, priority=02023-02-13 09:5

标签:报错  数据  DataX  mysql  

源代码下载点击打开链接下载源代码(超链接)

标签:数据库  net  mysql  

JavaWeb连接MySQL数据库JavaWeb连接MySQL数据库的方式有很多,首先我们讲解JDBC的配置方法

标签:数据库  JavaWeb  mysql  

转自:http://www.maomao365.com/?p=10003 摘要: 下文讲述MySQL数据库,字符串连接的方法分享,如下所示:实现思路: 使用concat函数对两个字符串进行连接在MySQL数据库中,连接字符串,如果我们使用+号的话,就会出现结果0,所以MySQL数据库,我们必须使用concat连接字符串,如下例所示:

标签:字符串  数据库  方法  mysql  

事务 事务由单独单元的一个或多个SQL语句组成,在这 个单元中,每个MySQL语句是相互依赖的。而整个单独单 元作为一个不可分割的整体,如果单元中某条SQL语句一 旦执行失败或产生错误,整个单元将会回滚。所有受到影 响的数据将返回到事物开始以前的状态;如果单元中的所 有SQ

标签:进阶  

索引 索引是帮助 MySQL 高效获取数据的数据结构(有序)。在数据之外,数据库系统还维护着满足特定查找算法的数据结构,这些数据结构以某种方式引用(指向)数据,这样就可以在这些数据结构上实现高级查询算法,这种数据结构就是索引。 优缺点 优点: 提高数据检索效率,降低数据库的IO成本 通过索引列对数据进行排序,降低

标签:进阶  

目录 一.准备工作 二.Connector/C 使用 1.引入MySQL库

标签:连接数据库  

目录 一.准备工作 二.Connector/C 使用 1.引入MySQL库

标签:连接数据库  

连接数据库之前,必须先将数据库驱动依赖添加到项目的依赖库中:idea中添加驱动步骤->File->Project Structure->Libraries->中间栏+号并选择java->选择下载好的驱动程序官网下载驱动程序:http://dev.mysql.com/downloads/connector/j/JBDC 连接数据库一般有如下步骤:编写连接字符串 jdbc:mysql://主机名称:连接端口/数据库名称?参数=值z

标签:数据库  JDBC  mysql  IDEA  

连接池 问题: 每次JDBC访问MySQL,都需要一个Connection对象。 一个Connection对象创建,需要经历(开辟内存空间、初始化数据、建立java和MySQL之间的io连接,最后完成Connection的创建),这个过程会消耗CPU资源和JVM内存资源。 如果使用完Connection,就销毁掉,会让Connection对象创建消耗的资源白白浪费掉。

标签:数据库  

我们如何在nodejs中连接并操作数据库呢? 让我为大家解答一下吧! 1.安装操作MySQL数据库的第三方块 (mysql) mysql 模块是托管于 npm 上的第三方块。它提供了在

标签:连接数据库  

今天在开发项目时,试着一次性插入大量数据,结果出现了以下报错:  依稀记得以前也遇到过类似的问题,于是打算记录下错误原因及解决过程:首先,这是由

标签:报错  数据库  error  statement  Prepared  

IDEA——连接MySQL数据库,创建库和表 1、打开idea数据库操作页面(两种打开方法都可以)

标签:数据库  

7.7 操作MySQL数据库:pymysql 7.7.1 准备工作(创建mysql数据库) PHPStudy介绍: phpstudy是一款非常

标签:进阶  

intersystems公司的产品iris是cache的升级版本,目前绝大多数数据库工具都没法连接这个数据库 datagrip下载地址 https://download-cdn.jetbrains.com.cn/datagrip/dat

标签:连接数据库  

背景:数据库为华为gauss for opengauss 集中式数据库 IDEA提供了丰富的各类型数据库驱动,但暂未提供Gauss数据库。可以通过以下方法进行连接。 连接后, 可以自动检查x

标签:华为  

连接数据库 我们使用Win+R输入cmd打开运行窗口 输入:sqlplus并回车 输入用户名和密码,我用的是Scott,密码我自己设置的123456,Scott默

标签:数据库  

JDBC连接数据库共六步1.Class.forName()加载数据库连接驱动2.DriverManager.getConnection()获取数据连接对象3.根据SQL获取sq|会话对象4.执行SQL,执行SQL前如果有参数值就设置参数值setXXX()5.处理结果集6.释放资源0.前期工作0.0文件jar包下载,配置,删除目前常用的驱动版本就是5或者

标签:连接数据库  JDBC  

猜你喜欢

Mysql配置搭建mysql服务,保证能正常运行pip install mysqlclientSetting配置数据库如下是mysql数据库的配置 同步数据库先生成表结构,检查是否有表结构变更:python manage.py makemigrations再同步数据库:python manage.py mi

标签:连接数据库  Django  

 Postman连接数据库总括我们有时候做postmann接口测试时,需要操作数据库,所以就需要用Postman直接连接数据库,以便可以直接对数据库里面的数据进行增删改查;若Postman要连接MySQL数据库,需要先安装xMySQL,并启动xMySQL,然后才可以调用。一、Postman连接Mysql数据库1、安装node.js(1)https://nodejs.org/dist/v12.16.3/node-v12.16.3-x64.msi(直接访问地址下载node.js一键安装);2、配置环境变量(1)也有可能在安装了.msi格式的安装包已经自动添加

标签:连接数据库  Postman  

1,JDBC概述 在开发中我们使用的是java语言,那么势必要通过java语言操作数据库中的数据。这就是接下来要学习的JDBC。 1.1 JDBC概念 JDBC 就是使用Java语言操作关系型数据库的一套API 全称:( Java DataBase Connectivity ) Java 数据库连接

标签:数据库连接  

前言:利用IDEA的数据库集成工具(Database)连接数据库,以MySQL为例,通过内置的数据库工具连接操作,展示项目为Maven项目,通过这种方法可以使用IDEA自带的强大功能。添加数据库驱动依赖<dependency> <groupId>mysql</groupId> <artifactId>mysql-connector-java</artifactId></dependency>

标签:连接数据库  IDEA  

问题与环境linux的环境为 kali 2020.4php版本为:PHP 7.4.11安装的typecho版本为:typechov1.0遇到的问题是:在typecho初始化时,数据库的信息都填写完整,在MariaDB中已经创建了typecho数据库且已经开启MariaDB远程管理功能的时候,仍然出现“无法连接数据库”的问题。截图如下:注:MariaDB为kali自带的数据库,有关该数据库的详细内容请看https://baike.baidu.com/item/mariaDB/6466119?fr=aladdin)

标签:连接数据库  kali  Typecho  

&nbsp; &nbsp; 转眼间,2021年的第一个季度已经到了最后一个月了,由于疫情原因,最近一段时间一直在北京,基本上没有出差,每天上班下班的日子感觉时间过的好快,新的一年继续努力奋斗啊。&nbsp; &nbsp; 仔细回想一下,自己踏入到sql server的领域也已经三年之久了,从刚开始只会简单的增删该查,到现在2020年自己支持的一百多家客户的日常数据库运维,现在回想一下,还是成长蛮多的(小夸自己一下)

标签:之路  实战  案例  数据库  tempdb  

数据库的内连接和外连接 内连接: 两个或两个以上的表进行关联查询时&#xff0c;查询的结果集中 返回所有满足连接条件的行。 外连接

标签:数据库  

导读本文是线上问题处理案例系列之一,旨在通过真实案例向读者介绍发现问题、定位问题、解决问题的方法。本文讲述了从垃圾回收耗时过长的表象,逐步定位到数据库连接池保活问题的全过程,并对其中用到的一些知识点进行了总结。一、问题描述大促期间,某接口超时次数增多,经排查直接原因是GC耗时过长,查看监控FullGC达500ms以上,接口超时时间与FullGC发生时间吻合。

标签:线上  出乎意料  案例  数据库  连接池  

目录 1 数据库约束1.1 NOT NULL 约束1.2 UNIQUE 约束1.3 DEFAULT 约束1.4 PRIMARY KEY 约束1

标签:进阶  

本节用docker来安装tomcat&#xff0c;并用这个tomcat连接我们上一节安装好的mysql数据库 一、拉取镜像 我们安装8.5.69版本 先搜索一下

标签:实战  

1、服务器mysql数据库本地连接开发3306有安全风险,开发和运营过程中往往需要本地操作数据库,远程上去操作数据库非常的不方便2、在本地建隧道连接远程数据库,关闭服务器连接,数据库连接自动中断,安全又方便3、下面是具体的操作流程,需要的小伙伴可以参考使用图1:选择目标主机-》右键点击属性-》选择隧道-》

标签:隧道  数据库  mysql  

Power BI案例-连锁Mysql 方法1-通过组件mysql-connector-net-8.3.0&#xff1a; 选择文件–获取数据–选择MySQL数据库–选择链接

标签:案例  

1、数据库连接池 1.1 JDBC数据库连接池的必要性 在使用开发基于数据库的web程序时&#xff0c;传统的模式基本是按以下步骤&#xff1a; 在主程序&#xff08;如servlet、beans&#xff09;中建立数据库连接进行sql操作断开数据库连接 这种

标签:数据库  

使用 Rust 语言连接操作 SQLite 数据库,我使用 rusqlite 这个 crate。看例子:首先,使用 cargo 创建一个 Rust 项目,然后添加依赖 rusqlite:

标签:数据库  Rust  SQLite  

这次,我们使用 postgres 这个 crate 来连接和操作 PostgreSQL 数据库。创建好项目后,在 cargo.toml 里添加 postgres 的依赖:

标签:数据库  Rust  Postgresql  

&nbsp;C++ 是一种通用的编程语言,可以使用不同的库和驱动程序来连接各种数据库。以下是一些示例代码,演示如何使用

标签:数据库  实例  Server  SQL  mysql  

一、概述 概述&#xff1a;数据库连接池可提前把多个数据库连接建立起来&#xff0c;然后把它放到一个池子里边&#xff0c;就是放到一个容器里边进行维护。这样的话就能够避免数据库连接的频繁的创建和销毁&#xff0c;从而提高程序的效率。线程池其实也是同样的思路&#xff0c;也是为了避免线程的重复的创建和销毁。

标签:数据库  

数据持久化数据持久化就是将内存中的数据模型转换为存储模型,以及将存储模型转换为内存中的数据模型的统称。数据模型可以是任何数据结构或对象模型,存储模型可以是关系模型、XML、二进制流等。瞬时状态保存在内存的程序数据,程序退出,数据就消失了持久状态保存在磁盘上的程序数据,程序退出后依然存在数据持久化技术Hibernate、JPA、==JDBC(Java Datebase Connectivity)==等JDBC框架Driver 接口

标签:持久  数据库连接  数据库  JDBC  

C#是世界上最好的语言 新建项目 如下图所示选择框红的项目

标签:后端  

1.多表查询 2.内连接

标签:进阶  

一、下载第三方工具包驱动数据库  1. 因为JMeter本身没有提供链接数据库的功能,所以我们需要借助第三方的工具包来实现。  &nbsp;(有这个jar包之后,jmeter可以发起jdbc请求,没有这个jar包,也有jdbc取样器,但不能发起请求。)  2. 进入maven仓库-http://mvnrepository.com/,找到想要的工具包,比如我想要连接的是sql server数据库,就在搜索栏中搜索sql server,如果是mysql就搜mysql。  

标签:连接数据库  性能  Server  Jmeter  JDBC  

常用的数据库MySQL操作&#xff0c;一般包含对数据库的管理&#xff0c;表&#xff0c;数据&#xff0c;用户权限管理等&#xff1b;对数据表的操作包含创建表&#xff0c;查看表&#xff0c;修改表&#xff0c;删除表&#xff0c;合并表&#xff0c;备份及恢复表&#xff1b;对数据的操作包含查询数据&#xff0c;修改数据&#xff0c;插入数据&#xff0c;删除数据操作。

标签:常规  

本篇文章给大家介绍一下PHP连接MySQL数据库的三种方式(mysql、mysqli、pdo),结合实例形式分析了PHP基于mysql、mysqli、pdo三种方式连接MySQL数据库的相关操作技巧与注意事项。有一定的参考价值,有需要的朋友可以参考一下,希望对大家有所帮助。PHP与MySQL的连接有三种API接口,分别是:PHP的MySQL扩展 、PHP的mysqli扩展 、PHP数据对象(PDO) ,下面针对以上三种连接方式做下总结,以备在不同场景下选出最优方案。PHP的MySQL扩展是设计开发允许php应用与MySQL数据库交互的早期扩展。MySQL扩展提供了一个面向过程的接口,并且是针对MySQL4.1.3或者更早版本设计的。因此这个扩展虽然可以与

标签:三种  浅谈  方式  数据库  mysql  

Flutter开发进阶之并发操作数据库 尽管 Flutter 本身不包含任何数据库功能&#xff0c;但可以使用各种第三方库和插件来在 Flutter 应用程序中实现数据库功能&#xff1b; 以下将使用sqflite作为例子&#xff0c;sqfl

标签:进阶  

相关问题

相关文章

热门文章

推荐文章

相关标签