先上代码:
<%@ page contentType="text/html;charset=GBK"%>
<%@page import="java.sql.*"%>
<%!public static final String DBDRIVER="org.gjt.mm.mysql.Driver";
public static final String DBURL = "jdbc:mysql://127.0.0.1:3306/test";
public static final String DBUSER = "";
public static final String DBPASS  = "";
%>
<%
Connection conn=null;
PreparedStatement pstmt = null;
ResultSet rs = null;
%>
<%
try{
Class.forName(DBDRIVER);
conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
String sql = "SELECT userName,passWord From user";
pstmt =conn.prepareStatement(sql);
rs = pstmt.executeQuery();
}catch(Exception ex){
System.out.println("连接数据库错误");
}
%>就在conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
这过不了,我删掉后面的,在这用catch后台就打印 “连接数据库错误了”
这句有什么错呢?我刚安的MYQSL 打开,直接按个回车就进入了 下面建了一个test数据库。
在这过程中,WEB页面是白的哈,没任何反应

解决方案 »

  1.   

    没指定用户名密码吧
    这句话非常不好,隐藏了真实错误信息:
      System.out.println("连接数据库错误");
    修改为:
      ex.printStackTrace();
      

  2.   

    public static final String DBUSER = "";
    public static final String DBPASS = "";
    用户名密码为什么空、
      

  3.   

    我用root 空密码 还是连接不上
      

  4.   

    怎么把tomcat后台的错误报靠导出来呢?真实错误出来了
      

  5.   


    因为安装mysql时候,如果没有指定密码,那root用户密码为空,你必须手动更改密码。
      

  6.   


    1、你必须给root更改密码,默认密码是不行的。
    2、ex.printStackTrace();
    这样的异常,你在控制台就可以看到呀。
    如果你希望打到log中,则用log4j
      

  7.   

    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link fai
    lureThe last packet sent successfully to the server was 0 milliseconds ago. The driv
    er has not received any packets from the server.
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
    rce)
            at java.lang.reflect.Constructor.newInstance(Unknown Source)
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
            at com.mysql.jdbc.SQLError.createCommunicationsException(SQLError.java:1
    116)
            at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:344)
            at com.mysql.jdbc.ConnectionImpl.coreConnect(ConnectionImpl.java:2332)
            at com.mysql.jdbc.ConnectionImpl.connectOneTryOnly(ConnectionImpl.java:2
    369)
            at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2153)
            at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:792)
            at com.mysql.jdbc.JDBC4Connection.<init>(JDBC4Connection.java:47)
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)        at sun.reflect.NativeConstructorAccessorImpl.newInstance(Unknown Source)        at sun.reflect.DelegatingConstructorAccessorImpl.newInstance(Unknown Sou
    rce)
            at java.lang.reflect.Constructor.newInstance(Unknown Source)
            at com.mysql.jdbc.Util.handleNewInstance(Util.java:411)
            at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:381)
            at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java
    :305)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at java.sql.DriverManager.getConnection(Unknown Source)
            at org.apache.jsp.check_jsp._jspService(check_jsp.java:73)
            at org.apache.jasper.runtime.HttpJspBase.service(HttpJspBase.java:70)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
            at org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper
    .java:417)
            at org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:3
    91)
            at org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
            at javax.servlet.http.HttpServlet.service(HttpServlet.java:722)
            at org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(Appl
    icationFilterChain.java:306)
            at org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationF
    ilterChain.java:210)
            at org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperV
    alve.java:240)
            at org.apache.catalina.core.StandardContextValve.invoke(StandardContextV
    alve.java:161)
            at org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.j
    ava:164)
            at org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.j
    ava:100)
            at org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineVal
    ve.java:118)
            at org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.jav
    a:380)
            at org.apache.coyote.http11.Http11Processor.process(Http11Processor.java
    :243)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ss(Http11Protocol.java:188)
            at org.apache.coyote.http11.Http11Protocol$Http11ConnectionHandler.proce
    ss(Http11Protocol.java:166)
            at org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoin
    t.java:288)
            at java.util.concurrent.ThreadPoolExecutor.runWorker(Unknown Source)
            at java.util.concurrent.ThreadPoolExecutor$Worker.run(Unknown Source)
            at java.lang.Thread.run(Unknown Source)
    Caused by: java.net.ConnectException: Connection refused: connect
            at java.net.TwoStacksPlainSocketImpl.socketConnect(Native Method)
            at java.net.AbstractPlainSocketImpl.doConnect(Unknown Source)
            at java.net.AbstractPlainSocketImpl.connectToAddress(Unknown Source)
            at java.net.AbstractPlainSocketImpl.connect(Unknown Source)
            at java.net.PlainSocketImpl.connect(Unknown Source)
            at java.net.SocksSocketImpl.connect(Unknown Source)
            at java.net.Socket.connect(Unknown Source)
            at java.net.Socket.connect(Unknown Source)
            at java.net.Socket.<init>(Unknown Source)
            at java.net.Socket.<init>(Unknown Source)
            at com.mysql.jdbc.StandardSocketFactory.connect(StandardSocketFactory.ja
    va:257)
            at com.mysql.jdbc.MysqlIO.<init>(MysqlIO.java:294)
            ... 36 more
      

  8.   

    Caused by: java.net.ConnectException: Connection refused: connect你MySQL安装时没改端口吧?检查下MySQL的服务端口号看看。
      

  9.   

    mysql> show variables like 'port';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | port          | 3306  |
    +---------------+-------+
    1 row in set (0.00 sec)
      

  10.   

    mysql> show variables like 'port';
    +---------------+-------+
    | Variable_name | Value |
    +---------------+-------+
    | port          | 3306  |
    +---------------+-------+
    1 row in set (0.00 sec)
    端口是对的吗???
      

  11.   

    密码问题,你先改了root密码再说。
      

  12.   

    我的mysql的JAR包放在web-inf下面lib文件夹里面的。在Tomcat中,我配置了,context 指向了 f盘的WEB文件夹,所以JAR包就在 E:\Web\WEB-INF\lib\mysql-connector-java-5.1.18-bin.jar  这
      

  13.   

    1、你客户端确认使用用户名:root,密码:xxx 可以正常登录mysql,localhost/ip/127.0.0.1这三者都ok吗?
    2、你的mysql驱动jar比较奇怪,你换一个mysql自己的jar,试试。
      

  14.   

    我在做这个数据库连接就是把JAR包放在了lib文件夹下,还需要做其它的吗?比如,以前好像在做SQL2000的时候还要配置path啊什么的
      

  15.   

    安装备好了的MySQL包里面没有JAR包,我用的是MYSQL5.5的……
      

  16.   

    1、换个驱动jar试试
    2、把test数据库替换为mysql系统的一个数据库,比如mysql,看看是否可以正常连接上
      

  17.   

    conn=DriverManager.getConnection(DBURL,DBUSER,DBPASS);
    这句话过不了,哪里面哪有错呢
    com.mysql.jdbc.exceptions.jdbc4.CommunicationsException: Communications link fai
    lureThe last packet sent successfully to the server was 0 milliseconds ago. The driv
    er has not received any packets from the server.
            at sun.reflect.NativeConstructorAccessorImpl.newInstance0(Native Method)
      

  18.   

    我在CSDN上也下了个JAR包,也不行
      

  19.   

    你替换jar之后,改一下代码String url="jdbc:mysql://localhost/weblog";
    String user="root";
    String password="";
    Class.forName("com.mysql.jdbc.Driver");
    Connection conn = DriverManager.getConnection(url,user,password);
    Statement stm = conn.createStatement();
      

  20.   


    另外, 报异常时候将资源关闭。
    再给个finally,关闭资源
      

  21.   

    public static final String DBURL = "jdbc:mysql://127.0.0.1:3306/test";
    恩,谢谢,问题解决了,这句话的错,我改成了public static final String DBURL = "jdbc:mysql://localhost:3306/test";
    但我还是不知道,为什么127.0.0.1它就不认
      

  22.   

    我的浏览器  http://l127.0.0.1/jsp/check.jsp 居然找不到服务器
      

  23.   

    晕哦,找到了,但是http://127.0.0.1/jsp/check.jsp还是报错
    public static final String DBURL = "jdbc:mysql://127.0.0.1:3306/students";
    这是为什么呢
      

  24.   


    我之前问过你,127.0.0.1/localhost/ip这三者,你在本地mysql客户端是否都可以正常登陆mysql,你说都可以。你确定都可以?
    一般而言,默认情况下,root好像只可以通过localhost访问,ip是不可以的,是没有权限,需要修改myslq配置文件。
      

  25.   

    能再问一个问题吗?
    如果我要在服务器上发布,是不是还要改一下用户名root呢?假设数据库不在服务器本机
      

  26.   


    你在服务器上面部署war,那你数据库是否也在服务器本机?
    不管服务器在那里,你要确认的是;
    1、数据库的root密码是否和你java中配置的一样?
    2、如果数据库和你部署的服务器是用一台机器,那么使用localhost没有问题,要是不在同一台,可能需要改mysql配置,保证ip可以访问。linux中,经常出现这个问题。不知道你的服务器是不是linux
      

  27.   

    帮我解决个问题好吗?谢谢
    org.apache.jasper.JasperException: /foreach.jsp(40,0) Unterminated &lt;c:forEach tag
    org.apache.jasper.compiler.DefaultErrorHandler.jspError(DefaultErrorHandler.java:41)
    org.apache.jasper.compiler.ErrorDispatcher.dispatch(ErrorDispatcher.java:407)
    org.apache.jasper.compiler.ErrorDispatcher.jspError(ErrorDispatcher.java:132)
    org.apache.jasper.compiler.Parser.parseBody(Parser.java:1675)
    org.apache.jasper.compiler.Parser.parseOptionalBody(Parser.java:1002)
    org.apache.jasper.compiler.Parser.parseCustomTag(Parser.java:1274)
    org.apache.jasper.compiler.Parser.parseElements(Parser.java:1450)
    org.apache.jasper.compiler.Parser.parse(Parser.java:138)
    org.apache.jasper.compiler.ParserController.doParse(ParserController.java:239)
    org.apache.jasper.compiler.ParserController.parse(ParserController.java:102)
    org.apache.jasper.compiler.Compiler.generateJava(Compiler.java:197)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:365)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:345)
    org.apache.jasper.compiler.Compiler.compile(Compiler.java:332)
    org.apache.jasper.JspCompilationContext.compile(JspCompilationContext.java:594)
    org.apache.jasper.servlet.JspServletWrapper.service(JspServletWrapper.java:342)
    org.apache.jasper.servlet.JspServlet.serviceJspFile(JspServlet.java:391)
    org.apache.jasper.servlet.JspServlet.service(JspServlet.java:334)
    javax.servlet.http.HttpServlet.service(HttpServlet.java:722)代码是:<%@page language="java" import="java.util.*" pageEncoding="gb2312"%>
    <%@taglib prefix="c" uri="http://java.sun.com/jsp/jstl/core"%>
    <%@ page import="upload1.Bean"%>
    <%
    Cllection users = new ArrayList();
    for(int i=0;i<6;i++){
    Bean user = new Bean;
    user.setUserName("name"+i);
    user.setPassword("password000"+i);
    user.setAge("20");
    users.add(user);
    }
    session.setAttribute("users",users);
    %>
    <table width="100%" border="0" cellspacing="0" cellpadding="0">
    <tr>
    <td>选择</td>
    <td>用户名</td>
    <td>密码</td>
    <td>年龄</td></tr>
    <c:forEach var="users" items="${users}"> 
    <tr>
    <td>
    <input name="checkbox" type="checkbox" value="checkbox"/>
    </td>
    <td>
    <c:out value="$(users.userName)"/>
    </td>
    <td>
    <c:out value="$(users.password)"/>
    </td>
    <td>
    <c:out value="$(users.age)"/>
    </td>
    </tr>
    </forEach>
    </table>