【数据库错误】Data source rejected establishment of connection, message from server: “Too many connections“

一、背景
前几天在测试线上环境的过程中,需要一直关注数据库的数据变化。由于线上的MySQL是用Docker搭建的,在本地连接时经常出现 “Too many connections” , 在百度上找了很久,找不到关于Docker环境下MySQL的设置问题。最后通过英文在Google上才找到Stackover上的一条解决方案,分享一下!

二、原因分析
1、使用Docker后,默认将MySQL的连接数设置为214,修改后不起作用

2、在my.ini中设置max_connections参数均无效

三、解决方案
解除Docker最大连接数限制有两种解决方案,具体使用哪种,请结合你的Docker环境!
第一种:在Docker启动容器时该参数:(适用于未使用DockerFile镜像构建文件和docker-compose文件构建的环境)

–ulimit nofile=65536:65536

第二种:修改Docker启动脚本实现:(适用于使用DockerFile镜像构建文件和docker-compose文件构建的环境)

(1)宿主机:vim /etc/init.d/docker

(2)在文件开始部分加入以下代码:

      ulimit -u 65536 -HSn 65536

(3)保存并退出vim

Docker限制解除完后,我们再次修改最大连接数试一下!

1、进入MySQL容器

docker exec -it [container_id] /bin/bash

2、登录MySQL

mysql -u root -p[password]

3、查看最大连接数(默认为100)

SHOW VARIABLES LIKE ‘%max_con%’;

4、设置最大连接数

SET GLOBAL max_connections = 1000;

5、退出MySQL容器,并重启容器,解除连接数限制成功!

在这里插入图片描述

————————————————
版权声明:本文为CSDN博主「To Believe Me 」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/weixin_39835887/article/details/86071545

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值