The driver was unable to create a connection due to an inability to establish the client portion of解决过程记录

苏友朋

发布于 2020.05.13 19:53 阅读 118 评论 0

由于记录时间比较靠后,因此问题详情未能记录下来

该错误主要解决方法是:https://blog.csdn.net/zl386119974/article/details/29205633

简单来说就是系统对于短连接数有一个上限,当上限数量不足时可以通过该方法进行增加上限的方式解决。

 

但是我遇到的问题不是这个,首先我通过查询数据库连接数量:

参数释义:

cached:缓存的连接数

connected:正在使用中的连接数

created:自数据库服务开启以来数据库创建的连接数量

上图是经过处理之后的显示,未处理前的样子因为没能记录,所以只能答题说一下:

cached数量为个位数9,connected数量为两位数10到19,created为20多万,且仍然在急速增加中。

这个问题是因为cached设置过低的原因,首先查看当前设置数量

show global status like ‘Thread%’;

查看数据显示的是9,而connected数量大于该值,因此必然会不停创建新的连接,导致created数值一路飙升。

解决办法:

my.cnf 配置文件,[mysqld] 下 增加

thread_cache_size = 64 

重启数据库服务,注意这里配置的数量需要根据connected和实际的物理内存大小进行设置

设置依据:

内存      数值

1G  —> 8;

2G  —> 16; 

3G  —> 32; 

>3G  —> 64 

目前created数值的增长已经极大的降低下来,但是是否彻底解决了问题,目前还没有结论