注意事项:此方法仅适用于在Linux系统使用docker创建的mysql容器
前言
docker部署的mysql,报错“Too many connections”。
在最近的线上环境测试过程中,需要持续监控数据库的数据变动。然而,由于线上的MySQL数据库是通过Docker部署的,因此在本地进行连接时频繁遭遇到“Too many connections”(
“连接过多”)的问题。
一、出现连接过多的原因是什么?
使用Docker后,默认将MySQL的连接数设置为151,连接数较小容易报错,我们需要修改连接数的最大值。
二、解决步骤
1.重启mysql容器
无法进入数据库,需要先重启docker创建的mysql容器,再重新创建容器,才可以进行最大连接数的修改。
# 1.停止MySQL容器
docker stop mysql
# 2.启动MySQL容器
docker start mysql
2.在终端中,通过命令进入mysql目录进行修改
#查询运行中的mysql容器信息,一般容器名为mysql
docker ps --format "table {
{.ID}}\t{
{.Image}}\t{
{.Ports}}\t{
{.Status}}\t{
{.Names}}"
#[容器名] 替换为查询到的真实容器名,进入mysql容器
docker exec -it [容器名] /bin/bash
#查看最大连接数
SHOW VARIABLES LIKE '%max_connect%';
#设置最大连接数
SET GLOBAL max_connections = 1000;
#查看最大连接数是否修改成功
SHOW VARIABLES LIKE '%max_connect%';
步骤示例:
输入两次exit退出到root目录下,重写启动mysql容器,下面有mysql容器信息说明容器已经重启。
总结
使用docker创建mysql容器需要修改最大连接数,不然在后续服务频繁查询mysql数据库会频繁遭遇到“Too many connections”(
“连接过多”)的问题。