【MySQL】MySQL 5.6 参数之 extra_port

本文涉及的产品
云数据库 RDS MySQL Serverless,0.5-2RCU 50GB
云数据库 RDS MySQL Serverless,价值2615元额度,1个月
简介: 一 前言     作为MySQL DBA, 在运维MySQL的工作过程中,常常遇到Too many connections这个错误,这时作为数据库维护人员都不能登陆数据库进行维护 是多么窘迫的事。
一 前言
    作为MySQL DBA,  在运维MySQL的工作过程中,常常遇到Too many connections这个错误,这时作为数据库维护人员都不能登陆数据库进行维护 是多么窘迫的事。可能有人会说可以修改配置文件,然后重启数据库来解决。恩,不过这个是很多种解决方法中 可用性最差的一种,本文介绍通过 5.6 新的特性--管理端口 来解决这个问题。
二 认识 extra_port
   MySQL 在5.6.14 版本之后引入一个参数extra_port 用来解决too many connections的问题。
percona 官方介绍:
从官方文档介绍来看,在MySQL启动的时候使用该参数指定一个端口号(不要和正常的数据库服务端口冲突),Percona Server会监听来自该端口的请求。启用该参数可以解决使用thread_pool特性时,由于所有的连接池worker忙于处理慢querey或者被锁定导致DBA无法通过正常的端口连接DB, 以便DBA可以正常维护数据库。
具体用法如下:
  1. mysql --port='extra-port-number' --protocol=tcp
Maridb 官方介绍 (和percona的介绍类似,读者朋友可以自己翻译)
  1. Description: Extra port number to use for tcp-connections in a one-thread-per-connection manner. If set to 0, no other port is used. Introduced for the MariaDB 5.1 threadpool.
extra_max_connections  该参数主要是控制通过管理端口可以创建多少个连接。
官方介绍:
     "This variable can be used to specify the maximum allowed number of connections plus one extra SUPER users connection on the extra_port. This can be used with the extra_port variable to access the server in case no new connections can be established due to all worker threads being busy or being locked when pool-of-threads feature is enabled."
三 extra_port 测试
   测试环境:5.6.26-74.0-log Percona Server
   参数设置:
  1. max_connections = 1
  2. extra_max_connections = 1
  3. extra_port=13306
通过上面两个参数,来设置整个数据库的连接数。通过上面的参数配置,最多可以创建4个连接。
测试过程,通过使用下面的命令,尝试连接数据库:
场景1 模拟业务连接数据库,在两个不同的session下尝试连接 
  1. mysql -uyang -pyang -h127.0.0.1 -P3306
场景2 模拟DBA连接数据库,在两个不同的session下尝试连接
  1. mysql -uroot -h127.0.0.1 -P3306
场景3 模拟DBA连接数据库,在两个不同的session下尝试连接
  1. mysql -S /srv/my_3306/run/mysql.sock
场景4 占满数据库的所有连接数,然后使用extra_port 端口以root身份连接
  1. mysql --port=13306 --protocol=tcp -uroot -h127.0.0.1
场景5 占满数据库的所有连接数,然后使用extra_port 端口以业务身份连接
  1. mysql --port=13306 --protocol=tcp -uyang -pyang -h127.0.0.1
场景6 这次不指定通信协议,尝试连接
  1. mysql --port=13306 -uyang -pyang -h127.0.0.1
场景7 模拟DBA和业务同时连接数据库,在两个不同的session下尝试连接
  1. mysql -uyang -pyang -h127.0.0.1 -P3306
  1. mysql -S /srv/my_3306/run/mysql.sock
  2. mysql -uroot -h127.0.0.1 -P3306
测试的结果
      场景1,只能连接1次,第2次报错 ERROR 1040 (HY000): Too many connections
      场景2,只能连接2次,第3次报错 ERROR 1040 (HY000): Too many connections
      场景3,只能连接2次,第3次报错 ERROR 1040 (HY000): Too many connections
      场景4,可以连接2次,第3次报错 ERROR 1040 (HY000): Too many connections
      场景5,无法连接,提示"ERROR 1040 (HY000): Too many connections"
      场景6, 在业务占用连接池满,以管理员可以连接2次,
      场景7  如果管理员先登陆 ,业务方无法连接; 如果业务方先登陆,管理员可以登陆一次,无法登陆第二次
      共可以连接4次。
四 总结
    1 如果不用extra_port参数,MySQL max_connection个连接全部被占用,DBA仍可以root或者说是具有super权限连接到DB对DB进行管理,但是只能连接一次。业务账号只能登陆 max_connection 次。
    2 如果使用extra_port参数,MySQL max_connection个连接全部被占用,DBA可以以管理员权限创建 extra_max_connections+1个连接。
    3 max_connections的特性
      MySQL无论如何都会保留一个用于管理员(SUPER)登陆的连接,用于管理员连接数据库进行维护操作,即使当前连接数已经达到了max_connections。因此MySQL的实际最大可连接数为max_connections+1;这个参数实际起作用的最大值(实际最大可连接数)为16384,即该参数最大值不能超过16384,即使超过也以16384为准;增加max_connections参数的值,不会占用太多系统资源。系统资源(CPU、内存)的占用主要取决于查询的密度、效率等;
相关实践学习
基于CentOS快速搭建LAMP环境
本教程介绍如何搭建LAMP环境,其中LAMP分别代表Linux、Apache、MySQL和PHP。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
7月前
|
存储 关系型数据库 MySQL
MySQL--01
MySQL--01
33 0
|
8月前
|
关系型数据库 MySQL
报错:1130-host … is not allowed to connect to this MySql server,MySQL
报错:1130-host … is not allowed to connect to this MySql server,MySQL
170 0
|
关系型数据库 MySQL 数据库
MySQL - check使用
MySQL - check使用
113 0
|
关系型数据库 MySQL
每日一面 - MySQL 的双一设置是什么?
每日一面 - MySQL 的双一设置是什么?
|
运维 关系型数据库 MySQL
关于MySQL参数,这些你要知道
在前面一些文章中,经常能看到介绍某某参数的作用,可能有些小伙伴仍搞不清楚 MySQL 参数是啥。本篇文章我们来聊聊 MySQL 参数,学习下如何管理维护 MySQL 参数。
286 0
|
SQL 缓存 固态存储
MySQL5.7应当注意的参数
本篇文章主要介绍 MySQL 初始化应当注意的参数,对于不同环境间实例迁移,这些参数同样应当注意。 注: 本文介绍的参数都是在配置文件 [mysqld] 部分。
145 0
|
缓存 关系型数据库 MySQL
通过配置Mysql参数提高写入速度
1) innodb_buffer_pool_size 如果用Innodb,那么这是一个重要变量。相对于MyISAM来说,Innodb对于buffer size更敏感。MySIAM可能对于大数据量使用默认的key_buffer_size也还好,但Innodb在大数据量时用默认值就感觉在爬了。
1592 0
|
关系型数据库 MySQL 数据库
mysql无法重启,Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
mysql数据库经常会遇到各种问题,这里是无法重启的一种情况,总结一遍以后再遇到相同问题及时解决,也希望能帮到像我一样的小白!
mysql无法重启,Can’t connect to local MySQL server through socket ‘/var/lib/mysql/mysql.sock’
|
MySQL 关系型数据库 Windows
mysql出现Can't connect to MySQL server on 'localhost' (10061)的解决方法
网上搜索的一: 今天把mysql数据库拷贝到另外一台机上,结果连不上,报“Can't connect to MySQL server on 'localhost' (10061)“错误 到网上search,发现一篇文章很好,两种方法都能解决此问题 1、删除my.ini(在C:\windows\下),重新运行winmysqladmin,要求输入用户名和密码后,问题解决!2、看看hosts文件中localhost是不是指向127.0.0.1如果是没启动mysql服务,则可运行net start mysql。
1261 0

热门文章

最新文章