日期:2014-05-16 浏览次数:20877 次
写完的项目在本次测试没事,但是转移到实际项目中出现问题。报错如下:Data source rejected establishment of connection,? message from server: "Too many connections"
?
网上很多人都是这样说的,
1.可能是mysql的max connections设置的问题
2.可能是多次insert,update操作没有关闭session,需要在spring里配置transaction支持。
解决:
1.修改tomcat里的session 的time-out时间减少为20,(不是必改项)
2.对处理量大的对数据库insert或update的操作提供transaction支持.
原因:
mysql安装目录下的my.ini中设定的并发连接数太少或者系统繁忙导致连接数被占满
解决方式:
打开MYSQL安装目录打开MY.INI找到max_connections(在大约第93行)默认是100 一般设置到500~1000比较合适,重启mysql,这样1040错误就解决啦。
max_connections=1000
一定要重新启动MYSQL才能生效
CMD->
net stop mysql
net start mysql
?
但是由于项目的实际服务器在linux上,所以需要修改linux下 my.cnf
?
# vi /etc/my.cnf
?
//添加以下行
?
[mysqld]
set-variable=max_connections=1000
set-variable=max_user_connections=500
set-variable=wait_timeout=200
?
//max_connections设置最大连接数为1000
//max_user_connections设置每用户最大连接数为500
//wait_timeout表示200秒后将关闭空闲(IDLE)的连接,但是对正在工作的连接不影响。
//保存退出,并重新启动MySQL
?
/etc/init.d/mysql restart
?
//重新启动MySQL后使用下面的命令查看修改是否成功
# mysqladmin -uroot -p variables
Password:
//可以看到以下项说明修改成功
| max_connections???????????????? | 1000
| max_user_connections??????????? | 500
| wait_timeout??????????????????? | 200
?