Class.forName("org.gjt.mm.mysql.Driver").newInstance();
String url ="jdbc:mysql://localhost/yzrk?user=root&password=1234&useUnicode=true&characterEncoding=8859_1";
conn= DriverManager.getConnection(url); 
为什么报错呢?
java.sql.SQLException: Communication failure during handshake. Is there a server
 running on localhost:3306?
        at org.gjt.mm.mysql.MysqlIO.init(Unknown Source)
        at org.gjt.mm.mysql.Connection.connectionInit(Unknown Source)
        at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Unknown Source)
        at org.gjt.mm.mysql.Driver.connect(Unknown Source)
        at java.sql.DriverManager.getConnection(DriverManager.java:512)
        at java.sql.DriverManager.getConnection(DriverManager.java:193)
        at qzj_checker.checker_ga.ConntectDB.query(ConntectDB.java:20)
        at qzj_checker.checker_ga.GAqzjAction.checher(GAqzjAction.java:17)
        at qzj_checker.checker_ga.Checker_GA.main(Checker_GA.java:38)
test....

解决方案 »

  1.   

    连不上有啥好说的。
    1、检查mysql是否运行,是否在默认的3306端口运行
    2、检查防火墙是否禁止连接3306
    3、localhost用IP地址试试
      

  2.   

    都试了,不行!
    用工具界面可以打开mysql,服务也起了,还有可能是什么原因,会不会是包有问题 ?
      

  3.   

    我想可能是防火墙的原因 可能是因为在域上域主机限制了 但是mysql-front可以连 为什么呢?
      

  4.   

    mysql的服务怎么起,?
    是不是开机自动就起了,在windows的服务里,是启动状态就起来了?
    因为我用Ip的时候,开始显示这个IP没权限, Server configuration denies access to data source,
    grant all on *.* to 数据库用户名@ip地址 identified by '密码'之后,提示变了,让我看看服务起没起来,这是什么原因呢?
      

  5.   

    mysql采用c/s架构,通过socket进行通信.所以首先确保你的mysql服务端正在运行.其缺省端口是3306.你查一下是否存在mysqld
    或者mysqld-nt在运行(或者netstat看看3306端口是否占用),如果没有说明mysql服务端没有启动或者运行你的mysqladmin也可以启动mysql服务端.
      

  6.   

    String url ="jdbc:mysql://localhost/yzrk?user=root&password=1234&useUnicode=true&characterEncoding=8859_1";你这里的端口号呢?
      

  7.   

    不写就是默认
    java.sql.SQLException: Communication failure during handshake. Is there a server
     running on 127.0.0.1:3306?
    提示这个,