2010-06-08 98 views
2

我想連接到共享服務器上的MySQL數據庫。我正在使用Java應用程序進行連接。當我連接到localhost db時,問題不會發生。連接到遠程mysql數據庫的問題

URL = "jdbc:mysql://SHARED HOST IP:3306/DBNAME"; 
USER = "dbUSER"; 
PASS = "dbPASS"; 

Connection conn = DriverManager.getConnection(URL, USER, PASS); 

java.sql.SQLException: Access denied for user 'DBUSER'@'mycomputersIP???' (using password: YES) 

奇怪的是,它說,拒絕DBUSER @ mycomputersip而不是DBUSER @ sharedhostIP

是否有被擰的事情了我的無線路由器上的設置?

+0

絕對不是路由器。 ;) – 2010-06-08 04:48:48

回答

0

路由器上沒有任何設置搞砸了。如果您嘗試連接mycomputersIP(即打開JDBC連接的程序在您的計算機上),那麼數據庫將需要授予'DBUSER'@'mycomputersIP'的權限。 (實際上,這是授予字符串部分的要點。)

2

您的數據庫未配置爲遠程訪問。基本上它說你的用戶位於你的IP沒有權限訪問數據庫,而不是你的用戶位於Web服務器。

如果您使用的是共享託管軟件包,您需要在管理員區域打開此功能或者您的主機可能不支持此功能。一些主機還要求外部可訪問的數據庫可能不在Web服務器上,所以您的連接字符串也可能會改變。

+0

好吧,我明白現在在做什麼。我確實進入了cpanel並添加了我的ip作爲訪問主機,但我仍然有相同的錯誤。 – Bthunder 2010-06-08 04:57:32

+0

嘗試通過刪除儘可能多的變量來簡化等式。也許可以在http://dev.mysql.com/downloads/workbench/#downloads下載mysql工作臺並以此方式連接。如果它仍然給你這個錯誤,我會認爲仍然存在某種設置問題。驗證,你把你的* external * ip,而不是你的內部IP,對嗎? – 2010-06-08 05:02:22

+0

jdbc:mysql://服務器ip:3306/dbname服務器ip是mysql數據庫服務器的IP地址。至於遠程mysql設置,我有外部和192.168.1。% – Bthunder 2010-06-08 05:04:56

-1

同樣的問題,我剛纔得到的,它非常簡單,訪問已經由ISP訪問DB否認,

提起請求授予訪問權限,它會工作。

+0

我不這麼認爲,從服務器接收到拒絕訪問消息,因此連接工作。這似乎是一個授權問題。 – 2010-06-08 06:50:57

+0

我有同樣的問題,它爲我工作 – gmhk 2010-06-08 09:00:19

0

就像VeeArr說'DBUSER'@'mycomputersIP ???'是標準的。出於某種原因,您的主機暴露您的數據庫,但不允許您連接。如果您管理整個數據庫或在您的控制面板中有一個選項,那麼phpMyAdmin可以在特權下執行此操作。如果沒有,那麼你需要聯繫你的主機尋求幫助