2011-10-21 80 views
0

當使用java連接到mysql時,我遇到了一個奇怪的問題。使用java連接到mysql的錯誤

我運行XAMPP和Tomcat

我試圖連接到MySQL從Java。在我的機器上它工作正常,但在朋友機器上我得到一個錯誤:訪問被拒絕用戶'tomcat'@'localhost'

事情是 - 我設法連接使用PHP完全相同的信息。

用於連接的Java代碼:

String url = "jdbc:mysql://localhost:3306/"; 
    String dbName = "mta_db"; 
    String driver = "com.mysql.jdbc.Driver"; 
    String userName = "tomcat"; 
    String password = "tomcat"; 
    try { 
     Class.forName(driver).newInstance(); 
     _conn = DriverManager.getConnection(url + dbName, userName, password); 
    } catch (Exception e) { 
     e.printStackTrace(); 
    } 

端口是罰款

任何想法可能是什麼原因?

+1

SHOW GRANTS在mysql中說了些什麼? –

+0

premissions罰款。我可以通過PHP連接沒有問題。顯示GRANTS返回2行GRANT ALL PRIVILEGES ON *。* TO'root'@'localhost'WITH GRANT OPTION,GRANT PROXY ON「@」TO'root'@'localhost'WITH GRANT OPTION。我試過用戶根也 – galchen

回答

1

錯誤可能是在MySQL端,也就是說,tomcat用戶沒有權限從非localhost連接。

對於純樸的緣故,你可以先創建一個能夠從任何地方的帳戶連接,通過MySQL的GRANT聲明,如下所示:

GRANT ALL ON mta_db.* to [email protected]'%' identified by 'yourpassword'; 

在這種情況下,%爲任何主機通配符。

如果您知道連接客戶端的實際IP地址,稍後可以對其進行破解,以提高安全意識。

+0

不起作用。它連接從PHP順便罰款,我檢查了特權 – galchen