MySQL-数据库连接过多 Too many connections
连接数超过了MySQL设置的值
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Too many connections |
产生这种问题的原因是
连接数超过了 MySQL 设置的值,与 max_connections 和 wait_timeout 都有关系。wait_timeout 的值越大,连接的空闲等待就越长,这样就会造成当前连接数越大。
解决思路
修改MySQL配置文件/etc/my.cnf,设置成max_connections=1000,wait_timeout=5。如果没有此项设置可以自行添加,修改后重启MySQL服务即可。要不经常性报此错误,则要对服务器作整体性能优化
临时解决方法
查看连接数
mysql> show variables like 'max_connections'; |
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| max_connections | 151 |
+—————–+——-+
1 row in set (0.01 sec)
设置连接数
mysql> set GLOBAL max_connections=1000; |
Query OK, 0 rows affected (0.00 sec)
–查看
mysql> show variables like "max_connections"; |
+—————–+——-+
| Variable_name | Value |
+—————–+——-+
| max_connections | 1000 |
+—————–+——-+
1 row in set (0.00 sec)
解决方式
打开MYSQL安装目录打开MY.INI找到max_connections(在大约第93行)默认是100 一般设置到500~1000比较合适,重启mysql,这样1040错误就解决啦。
max_connections=1000
具体步骤
1.Mysql数据库的默认连接数是100。
2.默认值100对于一般的程序都不是很够用,如果只是在自己的电脑上调试程序,有可能发现不了这个问题,因为调试程序时会经常重起Tomcat。
3.如果使用Hibernate框架来进行数据库操作,这个问题尤其明显。
4.解决方法:加大Mysql连接数。在Mysql安装文件中,找到my.ini文件,在里面找到
max-connections=100,将这个100变大一点,直接来个1000算了。
PS:具体需要修改的数值需要根据自己项目的实际情况而定…