mysql连接数问题

最近应用服务器tomcat容器启动老提示mysql连接数不够用,

查看mysql连接数

show variables like '%max_connections%'; 

set global max_connections=2024 临时修改,永久修改要去my.cnf配置文件中添加

max_connections,默认是100

[mysqld]

max_connections = 2024

查看当前连接情况

show status like 'Threads%';  

显然连接是够用的,完全没有怎么消耗

然后用show processlist;  查看具体连接,show processlist;只列出前100条,如果想全列出请使用show full processlist;

show processlist;  

Threads_connected 跟show processlist结果相同,表示当前连接数。准确的来说,Threads_running是代表当前并发数

然后使用

flush hosts;

刷新后应用启动居然可以了,然后对比以前大佬的设置发现innodb_buffer_pool_size我没有设置 mysql 默认为128M

服务器内存很足,而且只做mysql服务所以加内存设置够大。

修改连接数超时时间跟mysql最大连接数同理,也是先查看当前mysql连接数超时时间
mysql> show global variables like "wait_timeout"; 方法一、修改配置文件,方法二、进入mysql修改 mysql> set global wait_timeout=600,即可。查看mysql全部参数 mysql > show status 。
 

开始一直以为是msyql连接数没生效

很显然连接数没有问题

MySQL 能够支持的最大连接数量受限于操作系统,必要时可以增大 open-files-limit 。换言之,连接数与文件打开数有关。

打开vi /usr/lib/systemd/system/mysqld.service , mysql是mysqld.service

LimitNOFILE=65535

LimitNOFILE=65535
LimitNPROC=65535

保存后,执行下面命令,使配置生效

$ systemctl daemon-reload
$ systemctl restart mysqld.service

修改/lib/systemd/system/mysql.service,添加

vi /etc/security/limits.conf
LimitNOFILE=65535
LimitNPROC=65535

保存后,执行以下命令
systemctl daemon-reload
systemctl restart mysql.service

设置durid连接超时和检测

这个错误是短时间内同一ip连接错误次数达到上限

show global variables like '%max_connect_errors%';

默认是100

修改配置文件然后重启

发布了52 篇原创文章 · 获赞 16 · 访问量 67万+

猜你喜欢

转载自blog.csdn.net/qq_30920479/article/details/103708876
今日推荐