mysql连接数据库异常

hiningmengshu 2010-01-13 05:39:31
com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link failure

Last packet sent to the server was 32 ms ago.
at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
at sun.reflect.NativeConstructorAccessorImpl.newInstance(NativeConstructorAccessorImpl.java:39)
at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(DelegatingConstructorAccessorImpl.java:27)
at java.lang.reflect.Constructor.newInstance(Constructor.java:513)
at com.mysql.jdbc.Util.handleNewInstance(Util.java:406)
at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1074)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:666)
at com.mysql.jdbc.MysqlIO.getResultSet(MysqlIO.java:406)
at com.mysql.jdbc.MysqlIO.readResultsForQueryOrUpdate(MysqlIO.java:2510)
at com.mysql.jdbc.MysqlIO.readAllResults(MysqlIO.java:1746)
at com.mysql.jdbc.MysqlIO.sqlQueryDirect(MysqlIO.java:2135)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2536)
at com.mysql.jdbc.ConnectionImpl.execSQL(ConnectionImpl.java:2465)
at com.mysql.jdbc.StatementImpl.executeQuery(StatementImpl.java:1383)
at com.IMA.DAO.operationDAO.get(operationDAO.java:15)
at com.IMA.struts.action.OperationAction.tojudge(OperationAction.java:76)
at com.IMA.struts.action.UserAction.tologin(UserAction.java:138)
at sun.reflect.NativeMethodAccessorImpl.invoke0(Native Method)
at sun.reflect.NativeMethodAccessorImpl.invoke(NativeMethodAccessorImpl.java:39)
at sun.reflect.DelegatingMethodAccessorImpl.invoke(DelegatingMethodAccessorImpl.java:25)
at java.lang.reflect.Method.invoke(Method.java:597)
at org.apache.struts.actions.DispatchAction.dispatchMethod(DispatchAction.java:270)
at org.apache.struts.actions.DispatchAction.execute(DispatchAction.java:187)
at org.apache.struts.action.RequestProcessor.processActionPerform(RequestProcessor.java:431)
at org.apache.struts.action.RequestProcessor.process(RequestProcessor.java:236)
at org.apache.struts.action.ActionServlet.process(ActionServlet.java:1196)
at org.apache.struts.action.ActionServlet.doPost(ActionServlet.java:432)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:637)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.IMA.util.Filter.doFilter(Filter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
Caused by: java.io.IOException: Stream closed
at com.mysql.jdbc.util.ReadAheadInputStream.checkClosed(ReadAheadInputStream.java:238)
at com.mysql.jdbc.util.ReadAheadInputStream.read(ReadAheadInputStream.java:178)
at com.mysql.jdbc.MysqlIO.readFully(MysqlIO.java:2428)
at com.mysql.jdbc.MysqlIO.readPacket(MysqlIO.java:590)
... 37 more
2010-1-13 17:35:46 org.apache.catalina.core.StandardWrapperValve invoke
严重: Servlet.service() for servlet jsp threw exception
java.lang.NullPointerException
at org.apache.jsp.html.index_002dec_jsp._jspService(index_002dec_jsp.java:980)
at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:374)
at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:342)
at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:267)
at javax.servlet.http.HttpServlet.service(HttpServlet.java:717)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:290)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at com.IMA.util.Filter.doFilter(Filter.java:23)
at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:235)
at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:206)
at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:233)
at org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:191)
at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:128)
at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:102)
at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:109)
at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:293)
at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java:849)
at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.process(Http11Protocol.java:583)
at org.apache.tomcat.util.net.JIoEndpoint$Worker.run(JIoEndpoint.java:454)
at java.lang.Thread.run(Thread.java:619)
...全文
315 26 打赏 收藏 转发到动态 举报
写回复
用AI写文章
26 条回复
切换为时间正序
请发表友善的回复…
发表回复
mengxq 2010-01-14
  • 打赏
  • 举报
回复
换个驱动后,
改:Class.forName("com.mysql.jdbc.Driver");
hiningmengshu 2010-01-14
  • 打赏
  • 举报
回复
谢谢大家,我改好了,是因为登录的方法调用了2次
function login(){
if(document.form1.user_accout.value==null || document.form1.user_accout.value==""){
alert('用户名不能为空!');
document.form1.user_accout.focus();
return false;
}
else if(document.form1.user_password.value==null || document.form1.user_password.value==""){
alert('密码不能为空!');
document.form1.user_password.focus();
return false;
}else{
document.form1.action="userAction.do?o=tologin";
document.form1.submit();
}

}
把最后面那个else放到form表单提交就好了
hiningmengshu 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 22 楼 zhoupuyue 的回复:]
1,换一个驱动试试,你的那个驱动是很老的版本了,com.jdbc.mysql.Driver
2,在mysql中show variables like 'wait_timeout',看一下值是多少,太小的话设置大一点。
[/Quote]我换了驱动还是不行,还有'wait_timeout'这个加到my.ini配置文件里,改成1814400也不行
KingZChina 2010-01-14
  • 打赏
  • 举报
回复
Communications link failure 链接失败
阿_布 2010-01-14
  • 打赏
  • 举报
回复
1,换一个驱动试试,你的那个驱动是很老的版本了,com.jdbc.mysql.Driver
2,在mysql中show variables like 'wait_timeout',看一下值是多少,太小的话设置大一点。
  • 打赏
  • 举报
回复
看看jar包是否缺少。
hiningmengshu 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 15 楼 wzju64676266 的回复:]
修改mysql5的配置文件“my.ini”(mysql5 installation dir),增加一行:wait_timeout=1814400
可能是连接时间出了问题
[/Quote]
我修改过的不起作用
hiningmengshu 2010-01-14
  • 打赏
  • 举报
回复
[Quote=引用 14 楼 wenjjing2lianee 的回复:]
像这种,定义成全局的一个连接用了再用就会出问题:
http://bbs.bccn.net/thread-292425-1-2.html

[/Quote]
我修改过的不起作用
ComputerHeart 2010-01-13
  • 打赏
  • 举报
回复
private Connection conn; ?????
crazylaa 2010-01-13
  • 打赏
  • 举报
回复
对楼主这种直连的方式,应该是用一个开一个,用完即关。怀疑你在某个方法里面没有getConnection就直接去用了。你这种方法是需要在每个类似GetAllUser的内部去getConnectioin的,既然你在内部关了,那么每个方法内部一开始就要取连接了。
wzju64676266 2010-01-13
  • 打赏
  • 举报
回复
org.gjt.mm.mysql.Driver 这个驱动包是3版本的,你的mysql就什么版本的,如果了5.0的话是换个驱动包
wzju64676266 2010-01-13
  • 打赏
  • 举报
回复
修改mysql5的配置文件“my.ini”(mysql5 installation dir),增加一行:wait_timeout=1814400
可能是连接时间出了问题
wenjjing2lianee 2010-01-13
  • 打赏
  • 举报
回复
像这种,定义成全局的一个连接用了再用就会出问题:
http://bbs.bccn.net/thread-292425-1-2.html
wenjjing2lianee 2010-01-13
  • 打赏
  • 举报
回复
不知道错误,具体在啊,但如果是下面这种情况会出现你这种问题:
[Quote=引用 11 楼 wenjjing2lianee 的回复:]
你的程序会不会出现得到一个连接后,被多个地方使用而没有及时的关闭...
[/Quote]

我给你个连接你去看看:
http://forums.mysql.com/read.php?39,199085,204628#msg-204628


你代码中:st,rs定义的都是全局的,不知道是不是由这个造成的.最后是定义成局部的,用完了就关了.
像这样写:
public List<Integer> getLocalRunEntId() {
String sql = "select ent_id from ent_info where runstate = 1 and is_local_run = 0";
List<Integer> notLocalRun = new ArrayList<Integer>();
Connection con = null;
ResultSet rs = null;
PreparedStatement st = null;
if (log.isDebugEnabled()) {
log.debug(sql);
}
try {
con = DAO.getInstance().getConnection();
st = con.prepareStatement(sql);
rs = st.executeQuery();
while (rs.next()) {
notLocalRun.add(rs.getInt("ent_id"));
}
} catch (Exception e) {
log.error("", e);
} finally {
DAO.close(con, st, rs);
}
return notLocalRun;
}

你改下试试.
再帮你找找...
hiningmengshu 2010-01-13
  • 打赏
  • 举报
回复
public List GetAllUser() {
// TODO Auto-generated method stub
List list = new ArrayList();
String sql = "select * from sys_user";
try {
st = getConnection().createStatement();
rs = st.executeQuery(sql);
while(rs.next()){
sysUsers user = new sysUsers();
user.setUser_id(rs.getInt("user_id"));
user.setAccount_valid(rs.getString("account_valid"));
user.setCert_cn(rs.getString("cert_cn"));
user.setOrg_id(rs.getInt("org_id"));
user.setPwd_valid(rs.getString("pwd_valid"));
user.setRole_name(rs.getString("role_name"));
user.setUser_accout(rs.getString("user_accout"));
user.setUser_id(rs.getInt("user_id"));
user.setUser_name(rs.getString("user_name"));
user.setUser_password(rs.getString("user_password"));
user.setUser_state(rs.getInt("user_state"));
list.add(user);
}
} catch (SQLException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}finally{
this.close();
}
return list;
}
wenjjing2lianee 2010-01-13
  • 打赏
  • 举报
回复
你的程序会不会出现得到一个连接后,被多个地方使用而没有及时的关闭...
wenjjing2lianee 2010-01-13
  • 打赏
  • 举报
回复
你把你调DAO的那代码贴出来看看.
hiningmengshu 2010-01-13
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 wenjjing2lianee 的回复:]
之前没加close()没错啊?
[/Quote]
没有啊!
wenjjing2lianee 2010-01-13
  • 打赏
  • 举报
回复
之前没加close()没错啊?
Maogc2010 2010-01-13
  • 打赏
  • 举报
回复
连接语句可能有问题~
加载更多回复(6)

81,116

社区成员

发帖
与我相关
我的任务
社区描述
Java Web 开发
社区管理员
  • Web 开发社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧