在公司项目开发过程中,随着项目增加,经常会把每个项目的平台部署成开发、测试环境,而数据库就有可能是多个平台共用一个了,现在基本上都是用的微服务架构,那么数据库连接就不够用了。
我们用的是MySQL数据库,最近遇到了这个尴尬的问题,本地修改了代码启动的时候经常会连不上数据库,提示就是:too many connections。既然连接太多,要么减少连接,要么扩大最大可连接数,
经过查询,MySQL数据库的默认最大连接数是100,而最大连接数可以达到16384个,那就扩大连接数好了。先介绍几个查询关于数据库连接数的命令:
1、查看数据库当前连接信息,可以看到连接数据库的进程id,ip,用户名,连接的数据库,连接状态,连接时长等
命令:SHOW FULL processlist;执行结果如下图:
有了进程id,我们可以杀死一些无用的进程,如:kill 130。需要注意,root账号权限很大,可以kill大部分进程,其他账号只能kill自己使用的进程。
2、查看数据库配置的最大连接数。
命令:show variables like '%max_connections%';执行结果如下图:
3、查看数据库所有配置。
命令:show global variables;执行结果如下图:
与2中查看最大连接数相同,如果我们需要找到某一个变量,就用 LIKE 关键字模糊搜索就可以了。如:show global variables like '%basedir%';可以查看数据库的安装路径。global是全局的意思。
以上命令在Navicat等工具中也是可以执行的。回到今天的主题,如果我们的数据库连接数较小,该如何修改配置呢?有两种方法。
方法一:进入MySQL用命令行修改,但是MySQL重启后就失效了,需要重新设置。(不推荐)
命令如下:
1、show variables like 'max_connections';(查看当前最大连接数)
2、set global max_connections=1000;(设置最大连接数为1000,可以再次执行上面的命令查看设置是否成功)
方法二:修改MySQL配置文件,永久生效(推荐)
1、进入MySQL安装目录,打开my.ini或my.cnf文件;
2、查看max_connections=100的配置参数,修改为max_connections=1000;如果没有这个参数,直接添加max_connections=1000即可;
3、保存配置文件并退出,重启MySQL服务即可。