`
luotuoass
  • 浏览: 640008 次
文章分类
社区版块
存档分类
最新评论

解决通过JDBC连接MySQL时的错误:Access denied for user

 
阅读更多
当你使用JDBC连接MySQL数据库的时候,如果遇到Access denied for user这样的错误时,java程序代码如下:
  1. Class.forName("com.mysql.jdbc.Driver");
  2. Stringurl="jdbc:mysql://localhost:3306/bookdb";
  3. Stringuser="jack";
  4. Stringpass="123456";
  5. Connectioncon=DriverManager.getConnection(url,user,pass);
代码看起来很好,但是为什么会出现这样的错误情况呢?一般有如下几种情况:
1、你的用户名或者密码确实错误,这个情况最简单,只要把用户名和密码修改正确就可以了。
2、用户名和密码都正确,此时你可以使用如下命令通过终端进行登录测试:
mysql -u jack -p bookdb
在提示输入密码时,输入相关的密码,看看能不能正确登录,如果不能,说明该用户不存在或者密码不对,或者该用户对bookdb没有访问权利。
使用如下命令解决赋权问题
mysql -u root -p (这里使用root帐号登录数据库)
grant all on bookdb.* to 'jack'@'localhost' indentified by '123456' with grant option;(给用户赋权)
flush privileges; (使用赋权生效)
如果这样赋权之后,使用JDBC还是不能连接,那么请再次使用如下命令:
grant all on bookdb.* to 'jack'@'127.0.0.1' indentified by '123456' with grant option;(给用户赋权)
flush privileges; (使用赋权生效)
大家发现,这里只是把localhost换成了127.0.0.1,是的,在有些系统上,使用localhost就是不行,现在应该可以连接成功了,祝你好运。

分享到:
评论

相关推荐

Global site tag (gtag.js) - Google Analytics