2014-10-08 40 views
0

JDBC連接錯誤MySQL訪問我已經檢查了這一點其他堆棧溢出和Web鏈接:拒絕用戶<user> @<host>

MySQL是在Linux服務器上

Linux uslx600 2.6.32-358.14.1.el6.x86_64 #1 SMP Mon 

說,它的IP是1.2.3.4

我可以使用MySQL Workbench從我的筆記本電腦連接到它。我不能附加圖像由於堆棧溢出的政策,但該對話框如下:

Connection Method: tcp/ip 
Hostname: <host of the server, so e.g. 1.2.3.4> 
Port: 3306 <This is same port as mentioned below for JDBC connection> 
username: bugs 
Default Schema: bugs 

內,MySQL的我跑[select user(), current_user()],我得到

現在我試圖從MySQL數據庫所在的Linux服務器進行連接。

以下工作,用戶是用戶本身,即沒有 「@%」 或東西:

conn = DriverManager.getConnection("jdbc:mysql://localhost:3306/bugs", user, pasword); 

以下也適用:

conn = DriverManager.getConnection("jdbc:mysql://127.0.0.1:3306/bugs", user, pasword); 

但它不工作,如果我給了框或主機名的IP地址。而我正在努力的是從另一臺Linux服務器訪問這個服務器,這可能不是因爲同一個問題。

錯誤消息時失敗是:

Access Denied for user 'bugs'@'<hostname of the server>' (using password=YES) 

如果有在服務器上有些出入的問題,不應該將MySQL工作臺有同樣的問題?
current_user()[email protected]%所以它不意味着用戶設置正確?

我也試圖改變用戶對「用戶」 @「%」等,但在所有這些情況下,錯誤信息總是:

'bugs'@'%'@'<hostname>' 
+0

my.cnf沒有綁定地址。我認爲這個問題是在jdbc驅動程序。我需要做一些特殊的事情來說錯誤@% – 2014-10-09 02:50:22

回答

0

錯誤說,它不能連接到與給定的密碼服務器。可能是你的密碼不正確,或者如果它有特殊字符,你必須正確地轉義那個字符串。

另一件事,用戶錯誤不能有權限從指定的主機連接到服務器。嘗試從連接的主機向用戶提供GRANTS,然後檢查是否可以連接到MySQL。

GRANT ALL PRIVILEGES ON *.* TO 'bugs'@'%' IDENTIFIED BY 'password'; 

或評論在my.cnf文件

#bind-address = 127.0.0.1 

重啓MySQL服務就行了。

相關問題