MySQL異常刨析:ata source rejected establishment of connection, message from server: “Too many connection
異常現象
com.mysql.jdbc.exceptions.jdbc4.MySQLNonTransientConnectionException: Data source rejected establishment of connection, message from server: "Too many connections"
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:57)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.Util.getInstance(Util.java:387)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:917)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:896)
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:885)
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1042)
at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2253)
at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2284)
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2083)
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:806)
at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
at sun.reflect.GeneratedConstructorAccessor47.newInstance(Unknown Source)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:45)
at java.lang.reflect.Constructor.newInstance(Constructor.java:526)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:404)
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:410)
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:328)
at java.sql.DriverManager.getConnection(DriverManager.java:571)
at java.sql.DriverManager.getConnection(DriverManager.java:215)
at com.yuanhe.leasing.util.DBUtil.getConn(DBUtil.java:37)
at com.yuanhe.leasing.service.StatusListService.showManage(StatusListService.java:221)
at com.yuanhe.leasing.servlet.ListStatusServlet.doPost(ListStatusServlet.java:56)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:650)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:731)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:303)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.tomcat.websocket.server.WsFilter.doFilter(WsFilter.java:52)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:241)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:208)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:218)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:122)
at org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:505)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:169)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:103)
at org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:956)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:116)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:442)
at org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1082)
at org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:623)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.doRun(AprEndpoint.java:2517)
at org.apache.tomcat.util.net.AprEndpoint$SocketProcessor.run(AprEndpoint.java:2506)
at java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1145)
at java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:615)
at org.apache.tomcat.util.threads.TaskThread$WrappingRunnable.run(TaskThread.java:61)
at java.lang.Thread.run(Thread.java:745)
原因分析:
1,未使用連線池,每次建立連結且沒有關閉
解決方法:
關閉連線,且依次關閉資料庫連線順序關閉!(RS,PS,CONN),確保異常時也要關閉。
finally{
try {
DBUtil.close(ps, conn, rs);
} catch (Exception e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
原因2:連線數設定的太少
1.Mysql資料庫的預設連線數是100。
2.預設值100對於一般的程式都不是很夠用,如果只是在自己的電腦上除錯程式,有可能發現不了這個問題,因為除錯程式時會經常重起Tomcat。
3.如果使用Hibernate框架來進行資料庫操作,這個問題尤其明顯。
4.解決方法:加大Mysql連線數。在Mysql安裝檔案中,找到my.ini檔案,在裡面找到
max_connections=100,將這個100變大一點,直接來個1000
相關文章
- 【Mysql】MySql Host is blocked because of many connection errors;MySqlBloCError
- 【MySQL】Host is blocked because of many connection errorsMySqlBloCError
- Mysql連線錯誤:Mysql Host is blocked because of many connection errorsMySqlBloCError
- MySQL:Lost connection to MySQL server at 'readingMySqlServer
- Mysql host is blocked because of many connection errors;unblock解決方法MySqlBloCError
- 解決WebLogic中Too many open files異常Web
- WebLogicServer BEA-000211 Connection rejected,..WebServer
- Mysql異常刨析:Could not commit JDBC transaction;No operations allowed after statement closedMySqlMITJDBC
- java.net.ConnectException: Connection refused 異常JavaException
- java.sql.SQLException: Io 異常: Connection refusedJavaSQLException
- MySQL: Too many connectionsMySql
- Connection/Session/Server ProcessesSessionServer
- HttpClient遭遇Connection Reset異常,如何正確配置?HTTPclient
- Lost connection to MySQL server at 'reading authorization packet'MySqlServer
- mysql connection refusedMySql
- SSL - SSLHandshakeException: Unrecognized SSL message, plaintext connection?ExceptionZedAI
- 開發:異常收集之 Software caused connection abort: recv failedAI
- oracle出異常:Io 異常: The Network Adapter could not establish the connection 解決辦法OracleAPT
- Mysql mysql lost connection to server during query 問題解決方法MySqlServer
- mysql5.5_2013 Lost connection to Mysql server during queryMySqlServer
- install mysql from sourceMySql
- MySQL ERROR 1040: Too many connectionsMySqlError
- 【MySQL】Too many connections 案例一則MySql
- Linux - 修改檔案控制程式碼數(Too many open files 異常)Linux
- Check connection related issue of mysqlMySql
- MongoDB mongoimport 報錯:lost connection to serverMongoDBImportServer
- Xlib: connection to ":0.0" refused by server(openSUSE)Server
- Linux啟動tomcat後執行shutdown.sh關閉時出現異常:Connection refused (Connection refused)LinuxTomcat
- 異常解決——GitLab : ssh: connect to host port 22: Connection refusedGitlab
- Configuration Connection from Linux to Windows for SESLinuxWindows
- Dr.Elephant mysql connection errorMySqlError
- Xlib: connection to ":0.0" refused by server 問題Server
- mysql備份提示 too many open files Errornumber 24MySqlError
- 關於mysql的Too many connections問題MySql
- Mysql連線錯誤:Lost connection to Mysql server at 'waiting for initial communication packet'MySqlServerAI
- 常見故障之八:JDBC Connection PoolsJDBC
- Dr.Elephant mysql connection error薦MySqlError
- tomcat連線池不夠-java.sql.SQLException: Io 異常: Connection resetTomcatJavaSQLException