1. 程式人生 > >Docker搭建的MySQL容器出現 "Too many connections 1040" 最大連接數修改完未生效的解決方案

Docker搭建的MySQL容器出現 "Too many connections 1040" 最大連接數修改完未生效的解決方案

shee weixin str 文件 允許 exec -h 問題 style

原文: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" 最大連接數修改完未生效的解決方案