mysql连接问题

Communication failure during handshake. Is there a server running on localhost:3306?
   
  今天重新部署我的工作环境,是一个Tomcat+Mysql的集成环境。

  我有个追新的毛病,看到Mysql的新的stable版本释放出来我就下了一个,安装上了。其它的几个服务都调试通过了,但是Tomcat和 Mysql却连结不上,提示错误Communication failure during handshake. Is there a server running on localhost:3306?,当时以为是mm.mysql的驱动的问题,去网上察看了一下,这个2.0.4的驱动居然是2001年的,新的版本叫做作Connector/J 3.x了,作者是Mark Matthews。以为是这个驱动的问题,但询问了朋友,说他们那个工作正常。

  Google一下吧。

  先是国内有个地方说是因为root将默认的空密码设置了密码造成这个问题,我重新建立了一个用户,但是还是抱这个错误。

  继续,结果在Mysql.com的官方网站上看到这个解释,是因为新的Mysql的认证机制发生了一些变化造成的,解决方法如下:

  I'd to change the authentication method at the mysql server:
  set password for <username>@<servername> = old_password('<password>');

  将红色那部分敲进去就解决了,呵呵,特此记录一下。

  MySQL设置都没问题,而且JDBC版本也比较新,仍然出现了无法连接数据库的问题,错误如下:

  java.sql.SQLException: Communication failure during handshake. Is there a server running on localhost:3306?
   at org.gjt.mm.mysql.MysqlIO.init(MysqlIO.java:327)
   at org.gjt.mm.mysql.Connection.connectionInit(Connection.java:261)
   at org.gjt.mm.mysql.jdbc2.Connection.connectionInit(Connection.java:89)
   at org.gjt.mm.mysql.Driver.connect(Driver.java:167)
   at java.sql.DriverManager.getConnection(DriverManager.java:523)
  ===========================================================
  解决方法
  把mm.mysql-2.0.4-bin.jar换成mysql-connector-java-3.1.5-gamma-bin.jar

  下载地址
  http://dev.mysql.com/get/Downloads/Connector-J/mysql-connector-java-3.1.5-gamma.zip/from/http://mirrors.hpcf.upr.edu/mysql/

  Class.forName("org.gjt.mm.mysql.Driver")  换成 
  Class.forName("com.mysql.jdbc.Driver") 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值