2010-02-24 100 views
0

我想遠程訪問mySQL服務器。這是我使用的代碼。遠程mySQL訪問錯誤

Connection conn = null; 
    try 
    { 
     String url = "jdbc:mysql://172.18.227.237:3306/struts2"; 
     Class.forName ("com.mysql.jdbc.Driver"); 
     conn = DriverManager.getConnection (url,"root","admin"); 
     System.out.println ("Database connection established"); 
    } 

,但我得到了以下錯誤:

com.mysql.jdbc.exceptions.MySQLSyntaxErrorException: Access denied for user 'root'@'172.20.169.174' to database 'struts2' 
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:1026) 
at com.mysql.jdbc.SQLError.createSQLException(SQLError.java:956) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3491) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:3423) 
at com.mysql.jdbc.MysqlIO.checkErrorPacket(MysqlIO.java:910) 
at com.mysql.jdbc.MysqlIO.secureAuth411(MysqlIO.java:3923) 
at com.mysql.jdbc.MysqlIO.doHandshake(MysqlIO.java:1273) 
at com.mysql.jdbc.ConnectionImpl.createNewIO(ConnectionImpl.java:2031) 
at com.mysql.jdbc.ConnectionImpl.<init>(ConnectionImpl.java:718) 
at com.mysql.jdbc.ConnectionImpl.getInstance(ConnectionImpl.java:298) 
at com.mysql.jdbc.NonRegisteringDriver.connect(NonRegisteringDriver.java:282) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at java.sql.DriverManager.getConnection(Unknown Source) 
at com.Connect.main(Connect.java:17) 

我已被授予訪問權限設置爲我的IP了,但我得到的錯誤。

+0

請以root用戶身份在命令行上登錄並執行以下操作:SELECT user,host FROM mysql.user where user ='root' – 2010-02-24 10:57:34

回答

1

在授予對該IP的root訪問權後,您是否刷新了特權?特權在MySQL引擎加載之前不會起作用,因此您必須發出'FLUSH PRIVILEGES'命令。

+0

如果您使用了正確的「CREATE USER」和「GRANT」命令,則不需要這麼做 - 您需要只有當你直接進入授權表時,我纔會推薦它 – 2010-02-24 10:56:46