【发布时间】:2011-08-22 13:31:29
【问题描述】:
我的java不太好。 我为客户创建了一个网站,但在交易过程中不断收到服务器连接失败之类的错误。由于基础异常:'com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: 用户 root 已经有超过 'max_user_connections' 个活动连接'。 我使用的网站托管仅提供 10 个 max_user_connections。但是,如果我继续使用该网站,我会因为不断点击网络服务器而收到此错误。
这背后的原因是什么?
我没有关闭连接吗?
我已经使用con.close()关闭了所有连接。
请帮忙
问候阿普尔夫
打开我使用的连接
Connection con=null;
Statement st=null;
Class.forName("com.mysql.jdbc.Driver").newInstance();
String useq="root";
String paq="manager";
String url="jdbc:mysql://localhost:3306/jayna?autoReconnect=true";
con=DriverManager.getConnection(url,useq,paq);
st=con.createStatement();
关闭我使用的连接
if(rs!=null){
rs.close();
}
if(st!=null){
st.close();
}
if(con!=null){
con.close();
}
我没有使用数据库池,但是当我正确关闭每个连接时,它有什么用??
【问题讨论】:
-
您使用的是什么服务器?你使用一些连接池机制吗?你有一些代码给我们看吗?
-
好吧,如果服务器说你超过了分配的连接数,那可能是对的,所以你的代码中一定有一些东西导致连接保持打开,或者可能 10 个连接不是对于您的应用程序来说已经足够了,尤其是在没有使用连接池的情况下。在没有看到任何代码的情况下,很难甚至不可能确定发生了什么。
-
幸好我不是你的客户。 :p
-
嗨,Apurv,你使用 finally 块作为关闭连接代码吗?
-
精英我第一次..请不要嘲笑我.:p。 Cyril 是的,我在 finally 块中使用过它。还有什么其他原因??