Communication failure during handshake. Is there a server running on localhost:3306?

今天重新部署我的工作环境,是一个Apache+PHP+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的向导程序作的不错,看来以后真的有潜力占到一线和大厂商拼一拼。

3 thoughts on “Communication failure during handshake. Is there a server running on localhost:3306?”

  1. 完全看不明白~~ 没关系!看不明白瞎看。。。

    那天看了Tin的流言,仔细想了想,最近是有点黑咚咚的,没关系,过了这几天就会又阳光灿烂的拉~ 都可以感觉到阳光的味道了~

    Tin的Blog仍然气味芬芳阿~

    嘿嘿,Tin,努力拉~

Leave a Reply

This site uses Akismet to reduce spam. Learn how your comment data is processed.