怎么使用MySQL 5.6参数extra

78次阅读
没有评论

共计 2291 个字符,预计需要花费 6 分钟才能阅读完成。

本篇内容主要讲解“怎么使用 MySQL 5.6 参数 extra_port”,感兴趣的朋友不妨来看看。本文介绍的方法操作简单快捷,实用性强。下面就让丸趣 TV 小编来带大家学习“怎么使用 MySQL 5.6 参数 extra_port”吧!

一 前言
    作为 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 可以正常维护数据库。
具体用法如下:

mysql –port= extra-port-number –protocol=tcp

Maridb 官方介绍 (和 percona 的介绍类似, 读者朋友可以自己翻译)

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
    参数设置:

max_connections = 1

extra_max_connections = 1

extra_port=13306

通过上面两个参数,来设置整个数据库的连接数。通过上面的参数配置, 最多可以创建 4 个连接。
测试过程,通过使用下面的命令,尝试连接数据库:
场景 1 模拟业务连接数据库, 在两个不同的 session 下尝试连接  

mysql -uyang -pyang -h227.0.0.1 -P3306

场景 2 模拟 DBA 连接数据库, 在两个不同的 session 下尝试连接

mysql -uroot -h227.0.0.1 -P3306

场景 3 模拟 DBA 连接数据库, 在两个不同的 session 下尝试连接

mysql -S /srv/my_3306/run/mysql.sock

场景 4 占满数据库的所有连接数,然后使用 extra_port 端口以 root 身份连接

mysql –port=13306 –protocol=tcp -uroot -h227.0.0.1

场景 5 占满数据库的所有连接数,然后使用 extra_port 端口以业务身份连接

mysql –port=13306 –protocol=tcp -uyang -pyang -h227.0.0.1

场景 6 这次不指定通信协议,尝试连接

mysql –port=13306 -uyang -pyang -h227.0.0.1

场景 7 模拟 DBA 和业务同时连接数据库, 在两个不同的 session 下尝试连接

mysql -uyang -pyang -h227.0.0.1 -P3306

mysql -S /srv/my_3306/run/mysql.sock

mysql -uroot -h227.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 次。

到此,相信大家对“怎么使用 MySQL 5.6 参数 extra_port”有了更深的了解,不妨来实际操作一番吧!这里是丸趣 TV 网站,更多相关内容可以进入相关频道进行查询,关注我们,继续学习!

正文完
 
丸趣
版权声明:本站原创文章,由 丸趣 2023-07-24发表,共计2291字。
转载说明:除特殊说明外本站除技术相关以外文章皆由网络搜集发布,转载请注明出处。
评论(没有评论)