[求助]为什么连接MySQL总是BAD HANDSHAKE?_MySQL, Oracle及数据库讨论区_Weblogic技术|Tuxedo技术|中间件技术|Oracle论坛|JAVA论坛|Linux/Unix技术|hadoop论坛_联动北方技术论坛  
网站首页 | 关于我们 | 服务中心 | 经验交流 | 公司荣誉 | 成功案例 | 合作伙伴 | 联系我们 |
联动北方-国内领先的云技术服务提供商
»  游客             当前位置:  论坛首页 »  自由讨论区 »  MySQL, Oracle及数据库讨论区 »
总帖数
1
每页帖数
101/1页1
返回列表
0
发起投票  发起投票 发新帖子
查看: 2599 | 回复: 0   主题: [求助]为什么连接MySQL总是BAD HANDSHAKE?        下一篇 
fozhyn
注册用户
等级:上士
经验:317
发帖:101
精华:0
注册:2011-10-18
状态:离线
发送短消息息给fozhyn 加好友    发送短消息息给fozhyn 发消息
发表于: IP:您无权察看 2014-11-10 9:21:02 | [全部帖] [楼主帖] 楼主

首先声明,在JAVA和MySQL面前,本人是初级菜鸟。请高手们兼顾考虑任何可能的低级错误!

俺下载了一个JSP的JBuilder工程文件连同配置好的网站目录,是一本书自带光盘上的。想做个毕业设计啦,顺便研究一下JSP。按照说明建立好了MySQL数据库,项目文件中有一个类专门负责数据库连接。数据库连接用的是这样的:

能连上的话执行:

Class.forName("com.mysql.jdbc.Driver");
conn=DriverManager.getConnectio("jdbc:mysql://localhost:3306/hospital","root","");
Debug.log("Connecion created.");


否则抛出异常:

Debug.log(Debug.getExceptionMsg(ex));


在JSP页面中进行用户注册,无论我怎么连接在浏览器页面中都会出编译错误,而在LOG中都发现记录下来的异常:Communication link failure: Bad handshake

我试过更改MySQL的用户名密码,或者更改类中数据连接代码中的连接MySQl用户名密码,然后重新编译。结果都是Bad handshake。后来试了试用换用数据库连接驱动:org.gjt.mm.mysql.Driver,甚至用MYODBC驱动,都能一连就连上了。一时间让我兴奋不已。不过连上是连上了,下面的问题接踵而至,首先,有一个用户类,此类中有一个方法负责收集表单用户注册信息输入然后添加到数据库,用到了java.sql.statement的方法executeQuery(strSQL),结果表单输入可以正确反映到数据库中。也就是可以用户注册,而且用户注册后也可以登陆,但是登陆之后执行另外一项数据库操作时候,这时再一次抛出了异常,不过异常好像不是很严重,浏览器没有报出编译错误。这次调用的是Statement的addbatch()方法:org.gjt.mm.mysql.Statement.addBatch() Ln 849:   Not implemented

结果,我在java.sql.statement类中发现了addbatch方法的定义,但是人家在Statement.java文件中好像并没提供此类的代码。而异常中说的org.gjt.mm.mysql中,我没找到statement类,只有在数据库驱动com.mysql.jdbc.Driver包中才有这个类。这是不是意味着如果使用org.gjt.mm.mysql.Driver包的话这个项目中的部分代码我就要重新写用来替换addbatch()方法,除此之外我只能使用com.mysql.jdbc.Driver包呢?而这个项目如果让我手动改动太多的话,我真的有些力不从心,呵呵,除非有那位人士出手向救,小妹真的感激不尽~~!

此外还有个小插曲,不知道对各位有没有帮助,这个项目中负责用户注册的类中关于用户密码添加到数据库中的部分有个password('" + Util.encode(password) + "')这样一个方法,结果造成我写进数据库的密码是加密的,但是登陆的时候确报密码错误,结果我只好把所有用到password()方法的地方都把password()方法去掉了,写进数据库的密码都是明文的,这样就可以登陆了,后来查到这个password()方法好像是MySQL的内置函数。

再一次恳请各位出手向救~教给我的,我保证努力学会!

--转自 北京联动北方科技有限公司




赞(0)    操作        顶端 
总帖数
1
每页帖数
101/1页1
返回列表
发新帖子
请输入验证码: 点击刷新验证码
您需要登录后才可以回帖 登录 | 注册
技术讨论