原文:Docker搭建的MySQL容器出现 "Too many connections 1040" 最大连接数修改完未生效的解决方案

版权声明:本文为博主原创文章,未经博主允许不得转载。 https://blog.csdn.net/weixin_39835887/article/details/86071545

一、背景

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

 

 

 

 

Docker搭建的MySQL容器出现 "Too many connections 1040" 最大连接数修改完未生效的解决方案的更多相关文章

  1. Docker 搭建 Tomcat + Mysql

    Docker 搭建 Tomcat + Mysql 准备 虚拟机 虚拟机安装Docker 在纯净的Centos镜像上搭建 Centos镜像准备 虚拟机上拉取 Centos 镜像: docker pull ...

  2. docker搭建简单mysql主从

    关于MySQL主从模式,如果我们直接在本机上搭建的话,是没法搭建的,只能借助于虚拟机,但有的时候我们又需要搭建一个主从集群,以便于进行一些功能性的测试.这个时候我们就可以尝试使用docker,借助于d ...

  3. Docker 里面新建mysql 容器

    1.获取MySQL镜像, a.直接从docker hub 下载docker镜像 docker pull +镜像名称 b.从别的项目上把镜像export出来 dockr load  i + 镜像的TAR ...

  4. Docker | Compose创建mysql容器

    本文通过Docker Compose来创建mysql容器 在linux服务器上创建文件,用于管理容器 mkdir docker-mysql cd docker-mysql vim docker-com ...

  5. docker mysql 容器报too many connections 引发的liunx磁盘扩容操作

    症状每次删除mysql容器重启没两分钟又报标题错 df -h 命令查看各个挂载空间应用情况发现root home var 三个文件目录挂载的空间满了 网上百度了一下liunx磁盘扩容操作,fdisk ...

  6. 使用docker搭建nfs实现容器间共享文件

    首先介绍下今天的两个主角:nfs和docker nfs 是什么 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TC ...

  7. 【云计算】使用docker搭建nfs实现容器间共享文件

    首先介绍下今天的两个主角:nfs和docker nfs 是什么 NFS(Network File System)即网络文件系统,是FreeBSD支持的文件系统中的一种,它允许网络中的计算机之间通过TC ...

  8. 在Docker上构建mysql容器

    1.查看docker上的镜像是否有 mysql,如果没有下载则列表中没有  [root@holly holly]# docker images; 如果没有只会看到如下结构 REPOSITORY  TA ...

  9. php连接docker启动的mysql容器报错:(HY000/2002): Connection refused的解决办法

    vim libraries/config.default.php 查找到localhost/127.0.0.1字符[一般来说默认都是localhost] :/localhost 替换成容器名,例如我定 ...

随机推荐

  1. SpringCloud学习笔记(五):Ribbon负载均衡

    简介 Spring Cloud Ribbon是基于Netflix Ribbon实现的一套 客户端 负载均衡的工具 .(重点:客户端) 简单的说,Ribbon是Netflix发布的开源项目,主要功能是提 ...

  2. typedef int (init_fnc_t) (void)和typedef int (*init_fnc_t) (void)

    1.typedef  int (init_fnc_t) (void);表示定义init_fnc_t为函数类型,该函数返回int型,无参数.而“init_fnc_t  *init_sequence[]= ...

  3. PAT甲级——A1090 Highest Price in Supply Chain

    A supply chain is a network of retailers(零售商), distributors(经销商), and suppliers(供应商)-- everyone invo ...

  4. vue-cli的使用指南

    vue-cli 2.0 安装vue-cli npm install -g vue-cli 创建一个项目模板 vue init <template-name> <project-nam ...

  5. UVA--624 CD(01背包+路径输出)

    题目http://uva.onlinejudge.org/index.php?option=com_onlinejudge&Itemid=8&page=show_problem& ...

  6. 在当前目录打开DOS命令行窗口

    [step1]选中文件夹 [step2]shift + 鼠标右键

  7. 04-2-object类型

    <!DOCTYPE html> <html lang="en"> <head> <meta charset="UTF-8&quo ...

  8. Python2 Python3 urllib方法对应

    Python2 name Python3 nameurllib.urlopen() urllib.request.urlopen()urllib2.urlopen() urllib.request.u ...

  9. 使用git命令将本地项目推送到远程仓库

    将本地项目推送到远程仓库 这里先放一张图, 有助于理解git命令 1. 在GitHub上新建一个仓库 注意不要勾选自动生成README.md文件, 否则会产生某些问题, README.md文件到时可以 ...

  10. ajaxfileupload 上传使用demo

    1.添加js引用 <script src="JS/jquery-1.4.2.min.js" type="text/javascript"></ ...