报错
报错信息如下:
"SQLState":"08004","vendorCode":1040,"detailMessage":
"Data source rejected establishment of connection,message from server: \"Too many connections\""
原因
根本原因是mysql连接数不够用了
但也要分情况看为什么不够用了
1.是mysql的max_connections属性配置太小?
2.还是是多次insert,update操作没有关闭session?
如果你也不确定,就继续往下看
我们要知道,
mysql版本
的不同,可设置的最大连接数范围也是有所区别的:
Mysql5.5~5.7:默认的最大连接数都是151,上限为:100000
Mysql5.0版本:默认的最大连接数为100,上限为16384
查看mysql版本
如下,我这里是基于mysql 5.7,那么默认的最大连接数应该是151
查看当前mysql最大连接数限制
show variables like 'max_connections';
当前最大连接数限制是151,说明没有改过最大连接数限制
如上所示,我的情况当前是最大连接数限制是151,在此之前依然
创建过十几个数据库
;同时我又再次自行检查过,我这里
不存在未关闭session的操作
所以原因是max_connections属性配置太小
修改mysql客户端最大连接数可以通过两种方式:
一种是使用命令设置,另一种是直接修改my.cnf文件
使用命令设置这种方式是临时修改,只能治标不能治本,在这个mysql服务不重启的条件下是可用的,若mysql重启会恢复到mysql默认的连接数(或者恢复到my.cnf文件中配置的最大连接数)。
但由于我是在测试,无所谓,mysql重启后的连接数
mysql重启后会优先使用my.cnf配置文件中的配置,用上面命令设置后,若重启mysql服务,则还是会回到my.cnf文件中配置的最大连接数(或者默认值)。
再次去创建数据库连接,就没问题了!
Mysql插入emoji表情报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB8'
Mysql插入emoji表情报错java.sql.SQLException: Incorrect string value: '\xF0\x9F\x90\xB8'
运维 ---Docker部署mysql后使用Navicat尝试连接遇到1251报错问题的解决方法
运维 ---Docker部署mysql后使用Navicat尝试连接遇到1251报错问题的解决方法
【亲测可用】通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
【亲测可用】通过Navicat for MySQL远程连接的时候报错mysql 1130的解决方法
Mysql case 视图操作报错 1267 Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE)……
Mysql case 视图操作报错 1267 Illegal mix of collations (utf8mb4_unicode_ci,COERCIBLE)……
docker容器内启动mysql服务,报错:New main PID 99 does not belong to service, and PID file is not owned by root.
docker容器内启动mysql服务,报错:New main PID 99 does not belong to service, and PID file is not owned by root.
MySQL技术专题—MySQL报错Got an error reading communication packets问题分析指南
MySQL技术专题—MySQL报错Got an error reading communication packets问题分析指南
mysql从5.7迁移表结构到5.5报错 near '(0) NULL DEFAULT NULL'
解决该问题(或者说从根源上避免遇到此类问题),应该保证开发环境的一致,同一项目的所有开发人员都应该保持所有环境的版本号一致(最好精确到小版本) 如果只是为了临时在mysql5.5完成测试,并且确认业务程序不需要使用到时间的小数秒,可以将sql文件中的长度设置删除,然后导入