MySQL8.0新特性之解决too many connections

众所周知,目前数据库在超过设置最大连接数时,会报too many connections,把新的连接拒之门外,而在MariaDB 10.0和Percona5.6版本中,有个参数extra_port可以额外登陆到数据库解决这个连接问题。

MySQL官方终于在8.0.14这个版本也推出了相关参数。

主要包含几个配置参数:admin_address: 用于指定管理员发起tcp连接的主机地址,可以是ipv4,ipv6, 或者Host name等等,他类似bind-address,但不同的是只能接受一个ip地址

admin_port: 顾名思义,就是管理员用来连接的端口号,注意如果admin_address没有设置的话,这个端口号是无效的

create_admin_listener_thread: 是否创建一个单独的listener线程来监听admin的链接请求,默认值是关闭的,facebook的建议是打开,否则其会使用已有的监听线程去监听admin连接。该参数同样需要admin_address打开, 否则没有任何影响

注意必须要有权限service_connection_admin才能登陆该端口,否则会报错

根据文档描述,admin port的连接个数不受max_connection或者Max_user_connection的限制。

基于此特性,做了一些测试:

根据官方文档要求,调整了一下参数

 

 将数据库连接打满,然后通过admin_port连接数据库,

 

 

 

 通过线程表查看,正常root用户连接数据库的方式和通过admin_port连接数据库的方式不同:

 

 

 

 一个是走本地socket,而另一个是走SSL/TLS,8.0版本中加密方式也做了增强,默认都是以caching_sha2_password插件来做的,还以原来方式连接数据库就会报以下错误。

ERROR 1251 (08004): Client does not support authentication protocol requested by server; consider upgrading MySQL client        

可以选择在配置文件中加上default_authentication_plugin = mysql_native_password重新走原来的加密方式,但是不推荐再用以前的,毕竟MySQL5.7版本到明年官方就不再维护BUG了,让我们一起拥抱8.0吧。

 

 

http://mysql.taobao.org/monthly/2019/09/03/              

posted @   清歌牧言  阅读(3729)  评论(0编辑  收藏  举报
编辑推荐:
· 记一次.NET内存居高不下排查解决与启示
· 探究高空视频全景AR技术的实现原理
· 理解Rust引用及其生命周期标识(上)
· 浏览器原生「磁吸」效果!Anchor Positioning 锚点定位神器解析
· 没有源码,如何修改代码逻辑?
阅读排行:
· 分享4款.NET开源、免费、实用的商城系统
· 全程不用写代码,我用AI程序员写了一个飞机大战
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· 白话解读 Dapr 1.15:你的「微服务管家」又秀新绝活了
· 上周热点回顾(2.24-3.2)
点击右上角即可分享
微信分享提示