2000字范文,分享全网优秀范文,学习好帮手!
2000字范文 > docker mysql 报错 “Too many connections 1040“ 修改最大连接数 未生效 解决方法

docker mysql 报错 “Too many connections 1040“ 修改最大连接数 未生效 解决方法

时间:2021-06-02 00:38:09

相关推荐

docker mysql 报错 “Too many connections 1040“ 修改最大连接数 未生效 解决方法

目录

一、背景

二、原因分析

三、解决方案

设置连接超时时间

一、背景

前几天在测试线上环境的过程中,需要一直关注数据库的数据变化。由于线上的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容器,并重启容器,解除连接数限制成功!

设置连接超时时间

对于错误Too many connections 1040 可以设置连接超时时间

打开配置文件 添加一下配置 vi /etc/f

wait_timeout = 600interactive_timeout = 600

或者 执行sql语句

SET GLOBAL wait_timeout = 600;SET GLOBAL interactive_timeout = 600;

本内容不代表本网观点和政治立场,如有侵犯你的权益请联系我们处理。
网友评论
网友评论仅供其表达个人看法,并不表明网站立场。