mysql5.7出现大量too many connections及too many open files错误,且配置最大连接数未生效
too many connections是由于mysql配置中连接数过少,不足以支撑当前的并发数,too many open files是由于mysql open_files_limit的值大小不够。
最开始mysql日志出现的错误为too many connections,mysql配置文件已经配置了最大连接数max_connections=2000,登录到mysql中,查看mysql连接收:show processlist; (查看详细执行信息使用:show full processlist;),发现线程数只有500多,并没有达到配置文件中的最大配置,登录mysql查看其生效的最大连接数及mysql open_files_limit
mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | |
+-----------------+-------+
row in set (0.00 sec) mysql> show variables like '%open_files_limit%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | |
+------------------+-------+
row in set (0.00 sec)
配置文件中配置的连接数2000未生效
linux一切皆文件,查看linux open files
[root@localhost work]# ulimit -a
core file size (blocks, -c)
data seg size (kbytes, -d) unlimited
scheduling priority (-e)
file size (blocks, -f) unlimited
pending signals (-i)
max locked memory (kbytes, -l)
max memory size (kbytes, -m) unlimited
open files (-n)
pipe size ( bytes, -p)
POSIX message queues (bytes, -q)
real-time priority (-r)
stack size (kbytes, -s)
cpu time (seconds, -t) unlimited
max user processes (-u)
virtual memory (kbytes, -v) unlimited
file locks (-x) unlimited
open files的大小只有1024,需要调大一些,设置为65535
vim /etc/security/limits.conf
添加
* soft nofile
* hard nofile
重新打开ssh窗口,登录,查看设置结果
[root@localhost ~]# ulimit -n
使mysql配置生效有如下两种方式
1、登录mysql,查看连接数,没有变化,还是214,在mysql开机启动服务文件中添加如下
vim /usr/lib/systemd/system/mysql.service
LimitNOFILE=infinity
LimitMEMLOCK=infinity
重启mysql
systemctl daemon-reload
systemctl restart mysql
查看最大连接数连接数及mysql open_files_limit,可以发现open_files_limit的大小被设置为与unlimit -n大小一致
mysql> show variables like '%open_files_limit%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | |
+------------------+-------+
row in set (0.00 sec) mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | |
+-----------------+-------+
row in set (0.00 sec)
2、如果未使用开机启动,使用mysql_safe也可以使配置生效,但open_files_limit的大小被设置为了10000
mysql> show variables like '%open_files_limit%';
+------------------+-------+
| Variable_name | Value |
+------------------+-------+
| open_files_limit | |
+------------------+-------+
row in set (0.00 sec) mysql> show variables like '%max_connections%';
+-----------------+-------+
| Variable_name | Value |
+-----------------+-------+
| max_connections | |
+-----------------+-------+
row in set (0.00 sec)
总结:
调大linux系统open files
设置mysql max_connections
1、如果使用开机启动,则在service文件中添加
LimitNOFILE=infinity
LimitMEMLOCK=infinity
使配置生效,并重新启动
systemctl daemon-reload
systemctl restart mysql
2、未使用开机启动,使用mysql_safe启动(open_files_limit被设置为10000,如果不够大,可以在配置文件my.cnf中修改)
mysqld_safe --defaults-file=/etc/my.cnf &
mysql5.7出现大量too many connections及too many open files错误,且配置最大连接数未生效的更多相关文章
- Docker搭建的MySQL容器出现 "Too many connections 1040" 最大连接数修改完未生效的解决方案
原文:Docker搭建的MySQL容器出现 "Too many connections 1040" 最大连接数修改完未生效的解决方案 版权声明:本文为博主原创文章,未经博主允许不得 ...
- mysql-5.7.9-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法
问题背景 最新解压版本的mysql 解压安装的时候报错 D:\mysql-5.7.9-winx64\bin>net start mysql MySQL 服务正在启动 . MySQL 服务无法启动 ...
- mysql-5.7.10-winx64 MySQL服务无法启动,服务没有报告任何错误的解决办法
总结报错原因:在my.init文件下新增data目录(datadir = F:\mysqldata ) 最新解压版本的mysql 解压安装的时候报错D:\mysql\mysql-5.7.10-wi ...
- mysql5.6.34-debug Source distribution在树莓派下编译的几个错误
raspberrypi下编译mysql5.6 debug版源码. 1. 启动错误 和mysqld相关的文件及文件夹权限必须设置为mysql用户可读可写可执行,特别是/var/run/mysqld/目录 ...
- 启动MySQL5.7时报错:initialize specified but the data directory has files in it. Aborting.
启动MySQL5.7时报错:initialize specified but the data directory has files in it. Aborting 解决方法: vim /etc/m ...
- Mysql5.7.20使用group by查询(select *)时出现错误--修改sql mode
使用select * from 表 group by 字段 时报错 错误信息说明: 1055 - Expression #1 of SELECT list is not in GROUP BY cla ...
- 在eclipse中配置server和database
配置server,以tomcat为例 点击下图的tag 如果没有,就去这里找: 然后右键:new->server,根据你安装的server选择版本,然后finish就行了 然后你右键那个serv ...
- spring mvc4.1.6 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明
一.准备工作 开始之前,先参考上一篇: struts2.3.24 + spring4.1.6 + hibernate4.3.11 + mysql5.5.25 开发环境搭建及相关说明 struts2.3 ...
- struts2.3.24 + spring4.1.6 + hibernate4.3.11+ mysql5.5.25开发环境搭建及相关说明
一.目标 1.搭建传统的ssh开发环境,并成功运行(插入.查询) 2.了解c3p0连接池相关配置 3.了解验证hibernate的二级缓存,并验证 4.了解spring事物配置,并验证 5.了解spr ...
随机推荐
- Spark学习之路 (一)Spark初识
目录 一.官网介绍 1.什么是Spark 二.Spark的四大特性 1.高效性 2.易用性 3.通用性 4.兼容性 三.Spark的组成 四.应用场景 正文 回到顶部 一.官网介绍 1.什么是Spar ...
- Unity的Mesh压缩:为什么我的内存没有变化?
0x00 前言 最近和朋友聊天,谈到了Mesh的内存优化问题,他发现开启Model Importer面板上的Mesh Compression选项之后,内存并没有什么变化.事实上,期望开启Mesh Co ...
- QPainterPath 不规则提示框(二)
前一篇讲过不规则提示框,但是提示框的方向是固定的,不能达到随意变换方向的效果,本接讲述可以动态变换方向的提示框 先看效果图 图1 图2 图3 图4 如上图1所示,上一篇文章的代码可以达到类似效果 本 ...
- DotNetCore跨平台~组件化时代来了
回到目录 进行dotnetcore之后,各种对象都是基于DI进行生产的,这就有了对象的生命周期一说,早在autofac里也有相关知识点,这与Microsoft.Extensions.Dependenc ...
- python使用魔法函数创建可切片类型
#!/usr/bin/env python # -*- coding: utf-8 -*- """ 可切片的对象 """ import nu ...
- sql server 生成数据库字典 sql语句
SELECT TOP 100 PERCENT --a.id, CASE WHEN a.colorder = 1 THEN d.name ELSE '' END AS 表名, ...
- 结对开发nabcd
各位领导/投资人/用户/合作伙伴: 我们的产品校园生活 是为了解决 广大在校师生对于信息难以得到的痛苦,他们需要了解有关于学校开办的各种活动的信息还有各种二手商品的交换信息,他们也需要一个公开的平台 ...
- .net 多线程 Thread ThreadPool Task
先准备一个耗时方法 /// <summary>/// 耗时方法/// </summary>/// <param name="name">< ...
- web.xml的<url-parttern>的匹配规则
<url-parttern>顾名思义是对url(统一资源定位符)的一种匹配,是对“http:........."地址的匹配,但是会减去应用上下文,就是你的web程序的名字,如果你 ...
- 【广州.NET社区线下活动】云定未来 - Azure Meetup
第2届 广州.NET线下沙龙 Azure Meetup 4月13日,第2届广州.NET线下沙龙在广州银行大厦7楼中创学院路演大厅成功举办.来自微软MVP.网易的技术专家们带来了干货满满的知识分享,即使 ...