在MyEclipse中连接MySQL报错,原因其实很简单
前几天,有人问了我一个关于在MyEclipse中连接MySQL失败的问题,当时没能找出问题所在,经过一番上网搜索也没能得到答案。由于好奇心我一直没放弃,最终问题却被一次无意的尝试解决了,下面我将“还原现场”。
在MyEclipse中连接MySQL:window-->show view-->other-->MyEclipse Database-->DB Browser,如下图:
此时单击DB Browser,视图界面将会发生变化,在DB Browser选项卡中的空白区域单击鼠标右键选择New…,也就是新建一个MySQL的连接,弹出如下对话框,将信息如图所示填好:
其中Driver name可以根据个人喜好填写,Connection URL当选择了Driver template以后会自动带出 jdbc:mysql://<hostname>[<:3306>]/<dbname>,此时将hostname的地方替换为localhost,把dbname替换为你所要连的数据库名字,然后将<、>、[、]等符号删掉,最终变为jdbc:mysql://localhost:3306/ems。当然,使用localhost必须保证MySQL安装在本地。接下来输入连接MySQL的用户名和密码,导入连接MySQL所需的驱动包。此时点击Test Driver报错:Access denied for user ‘local’@’localhost’(using password:YES),而朋友说他在安装MySQL的时候输入的用户名确实是local,密码是12345,而此时却怎么也连不上。
为了验证密码是否记错,随即在MySQL的终端中进行尝试,输入相同的密码后却成功连接了MySQL数据库,为什么同样的密码在终端中能用在MyEclipse中却不行呢?一番上网搜索仍然无果而终。最终问题是这样被解决的,打开MySQL终端,输入密码后查询了用户表(select * from mysql.user;)出来的结果中却只有root一个用户,将下图中User name的地方改为root便能成功。
至此真相终于大白,再次点击Test Driver,弹出如下对话框说明成功连接MySQL了。
为了更透彻的搞懂问题,我重新安装了一次MySQL,这次安装不为别的只为看清安装的每一步,其中安装到这一步的时候发现其实用户不是别的,一定是root,为什么这么说呢,下图是安装中的一步:
如果打钩项为Modify Security Settings,那么用户默认就是root(画红圈处),后面两个文本框中是root用户的密码,这也就解释了为什么用select * from mysql.user查出的用户只有root了。