今天在研究各种切面之间应该如何更好的做出选择的问题的时候,看到我们公司群里有人问有没有会改数据库连接数,我想着我应该没有权限去改这东西,但可以出一篇如何修改最大连接数的分享。

最大连接数是可以通过mysql进行修改的,mysql数据库修改最大连接数我知道的有两种常用的方法,今天我们分析一下这两种方法之间的特点和区别,以便我们能更好的去维护mysql。下面我们来看一下mysql修改最大连接数的方法,希望今天的分享能够帮助到各位小伙伴。

 

问题

在使用MySQL数据库的时候,经常会遇到这么一个问题,就是“Can not connect to MySQL server. Too many connections”-mysql 1040错误,这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100, 最大可以达到16384。然后我随手看了一下咱们公司设置的最大连接数是2000,其实按理来说我们技术部的人满够用,可能是资源无法得到有效释放吧。

 

解决方式一:通过命令

可以通过 set GLOBAL max_connections=2100; 命令将最大连接数设置为2100,此方法是即时生效的,不需要重启mysql服务。如:

show variables like "max_connections";

 

需注意的是,要通过root权限的mysql帐号才能操作,否则会报“1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation”的错误。

 

解决方式二:修改my.cnf

打开mysql的配置文件vim /etc/my.cnf,加入max_connections=2100一行(如果有,直接修改值即可),然后重启服务:/etc/init.d/mysqld restart,此时生效。

 

区别:

1.通过修改配置文件,需要重启服务;而用命令修改,即时生效。

2.采用修改配置文件的方式,更稳定可靠。因为如果配置文件中有max_connections=2000,再去用命令修改的话,一旦重启mysql服务后,会重新以配置文件中指定的连接数为准。

总结:

在修改最大连接数的时候会有这样一个疑问—这个值是不是越大越好,或者设置为多大才合适?这个参数的大小要综合很多因素来考虑,比如使用的平台所支持的线程库数量(windows只能支持到2048)、服务器的配置(特别是内存大小)、每个连接占用资源(内存和负载)的多少、系统需要的响应时间等。可以在global或session范围内修改这个参数。连接数的增加会带来很多连锁反应,需要在实际中避免由此引发的负面影响。希望今天的分享对大家使用mysql有所帮助。