俊星的BLOG

MYSQL Access denied 问题的解决

今天尝试通过JDBC连接局域网的另一台机器,抛出了如下异常:
com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Access denied for user 'root'@'%' to database 'wiki'
    at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:
936)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
2985)
    at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:
885)
    at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:
3421)
    at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:
1247)
    at com.mysql.jdbc.Connection.createNewIO(Connection.java:
2775)
    at com.mysql.jdbc.Connection.<init>(Connection.java:
1555)
    at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:
285)
    at java.sql.DriverManager.getConnection(DriverManager.java:
525)
    at java.sql.DriverManager.getConnection(DriverManager.java:
171)
    at test.tool.WikiStat.getConn(WikiStat.java:
18)
    at test.tool.WikiStat.main(WikiStat.java:
23)

具体的解决方法为,授予相关用权限,如:
mysql> grant select on *.* to 'root'@'%' identified by 'password';
Query OK, 0 rows affected (0.00 sec)

mysql> flush privileges
;
Query OK, 0 rows affected (0.00 sec)

mysql> exit
Bye

命令“grant select on *.* to 'root'@'%' identified by 'password'”所作的事情其实就是在“mysql.user”表中添加了一行记录,
因此如果需要删除某个授权,直接找到user表执行删除就OK了。

posted on 2009-05-27 19:54 俊星 阅读(2329) 评论(0)  编辑  收藏


只有注册用户登录后才能发表评论。


网站导航: