测试开发技术网站
博客
设计
设计
开发
Python
测试
unittest
运维
Linux基础应用
CI/CD
CI/CD
数据库
数据库
云计算
云计算
云原生
云原生
爬虫
爬虫
数据分析
数据分析
人工智能
人工智能
登录
注册
Mysql----在持续集成(CI)的流程测试环境对应的Mysql数据库报无法连接错误问题的解决办法
收藏本文
作者:redrose2100 类别: 日期:2023-04-20 16:28:24 阅读:670 次 消耗积分:0 分
[【原文链接】Mysql----在持续集成(CI)的流程测试环境对应的Mysql数据库报无法连接错误问题的解决办法](http://devops-dev.com/article/591) # 问题: 在持续集成环境中,比如基于kubersnets平台持续的构建销毁POD,在这种环境下,出现Mysql数据库无法连接,连接数过多等问题。 # 原因分析 (1)首先查看mysql的如下两类全局变量,一类是超时变量,如下所示 ```bash mysql> show variables like "%timeout%"; ``` ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/57ba563e-df53-11ed-aeea-0242ac110004.png) 另外一类是连接数变量 ```bash mysql> show variables like "%connections%"; ``` ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/cbdfa096-df53-11ed-aeea-0242ac110004.png) (2)再查看一下当前连接数 ```bash mysql> SELECT substring_index(host, ':',1) AS host_name,state,count(*) FROM information_schema.processlist GROUP BY state,host_name; ``` ![](https://redrose2100.oss-cn-hangzhou.aliyuncs.com/img/bdb0917e-df53-11ed-aeea-0242ac110004.png) (3)通过上述三组数据对比分析,可以发现在持续集成环境中,比如基于k8s平台,由于应用服务的POD会被不断的销毁新建,而每次新建的时候,服务都会与mysql数据库建立若干个连接,而当POD销毁时,客户端的mysql连接断了,但是服务端的连接并未断,此后mysql服务端的连接将保持空闲,等待wait_timeout超时,而问题也在这里,mysql默认的wait_timeout设置为8小时即28800秒,这就导致已经建立的连接将继续存活8小时,就这样持续集成环境部署的新POD不断的建立新连接,而再查看数据库的最大连接数配置,mysql默认配置了最大连接数为151,分析至此,问题已经很明显了,首先mysql超时设置太长了,对于持续集成环境的mysql不适合,另外一个最大连接数太小了,只有151个,很容易就占满了。 # 解决方案 根据分析的问题原因即可得出如下解决方案。 (1)将最大连接数设置大一点 ```bash mysql> set global max_connections=1000; mysql> set global max_user_connections=1000; mysql> set global mysqlx_max_connections=1000; ``` (2)将超时设置更小,比如600秒即十分钟 ```bash mysql> set global wait_timeout=600; mysql> set global mysqlx_wait_timeout=1000; mysql> set global interactive_timeout=1000; mysql> set global mysqlx_interactive_timeout=1000; ``` 至此,问题就可以解决了,当然这种配置方式是临时解决方案,如果想彻底解决,需要在mysql的配置文件中修改对应的配置参数,然后重启数据库。上面这种通过mysql命令修改的方式,当数据库重启后就失效了。
始终坚持开源开放共享精神,同时感谢您的充电鼓励和支持!
版权所有,转载本站文章请注明出处:redrose2100, http://blog.redrose2100.com/article/591
上一篇:
名片2-印刷工艺
下一篇:
名片3——尺寸/画布建立
搜索
个人成就
出版书籍
《Pytest企业级应用实战》
测试开发技术全栈公众号
测试开发技术全栈公众号
DevOps技术交流微信群
加微信邀请进群
常用网站链接
开源软件洞察
云原生技术栈全景图
Python语言官方文档
Golang官方文档
Docker官方文档
Jenkins中文用户手册
Scrapy官方文档
VUE官方文档
Harbor官方文档
openQA官方文档
云原生开源社区
开源中国
Kubernetes中文文档
Markdown语法官方教程
Kubernetes中文社区
Kubersphere官方文档
BootStrap中文网站
JavaScript中文网
NumPy官方文档
Pandas官方文档
GitLink确实开源网站
数据库排名网站
编程语言排名网站
SEO综合查询网站
数学加减法练习自动生成网站
Kickstart Generator
文章分类
最新文章
最多阅读
特别推荐
×
Close
登录
注册
找回密码
登录邮箱:
登录密码:
图片验证码:
注册邮箱:
注册密码:
邮箱验证码:
发送邮件
注册邮箱:
新的密码:
邮箱验证码:
发送邮件