- 时间:2020-01-16 01:29 编辑: 来源: 阅读:
- 扫一扫,手机访问
摘要:总结MySQL修改最大连接数的两个方式
[b]问题[/b]
在使用MySQL数据库的时候,经常会遇到这么一个问题,就是“[code]Can not connect to MySQL server. Too many connections[/code]”-mysql 1040错误,这是因为访问MySQL且还未释放的连接数目已经达到MySQL的上限。通常,mysql的最大连接数默认是100, 最大可以达到16384。
常用的有两种方式修改最大连接数。
[b]解决方式一:通过命令[/b]
可以通过 [code]set GLOBAL max_connections=100; [/code]命令将最大连接数设置为100,此方法是即时生效的,不需要重启mysql服务。如下图所示:
[img]http://files.jb51.net/file_images/article/201608/201685154355396.jpg?201675154410[/img]
[b]需注意的是[/b],要通过root权限的mysql帐号才能操作,否则会报[code]“1227 - Access denied; you need (at least one of) the SUPER privilege(s) for this operation”[/code]的错误。
同时,从上图也可以看出,设置max_connections最小值为1。
设置完成后,我再通过另一个终端连接时,就报出了如下的错误提示:[code]1040-Too many connections[/code]。
[img]http://files.jb51.net/file_images/article/201608/201685154510871.jpg?201675154519[/img]
[b]解决方式二:修改my.cnf[/b]
打开mysql的配置文件[code]vim /etc/my.cnf[/code],加入[code]max_connections=100一行[/code](如果有,直接修改值即可),然后重启服务[code]:/etc/init.d/mysqld restart[/code],此时生效。
[img]http://files.jb51.net/file_images/article/201608/201685154558933.jpg?201675154635[/img]
[b]区别:[/b]
1.通过修改配置文件,需要重启服务;而用命令修改,即时生效。
2.采用修改配置文件的方式,更稳定可靠。因为如果配置文件中有[code]max_connections=100[/code],再去用命令修改的话,一旦重启mysql服务后,会重新以配置文件中指定的连接数为准。
[b]总结:[/b]
在修改最大连接数的时候会有这样一个疑问—这个值是不是越大越好,或者设置为多大才合适?这个参数的大小要综合很多因素来考虑,比如使用的平台所支持的线程库数量(windows只能支持到2048)、服务器的配置(特别是内存大小)、每个连接占用资源(内存和负载)的多少、系统需要的响应时间等。可以在global或session范围内修改这个参数。连接数的增加会带来很多连锁反应,需要在实际中避免由此引发的负面影响。希望本文大家使用mysql有所帮助。