2012-02-19 80 views
2

我有一個應用程序,使用java se和編碼時,我安裝mysql本地主機上的工作臺,一切工作正常。現在我必須分發這些jar文件,以便人們可以使用它。但是當我嘗試訪問數據庫時,它說連接錯誤。在數據庫路徑中,我將數據庫所在的計算機的ip替換爲localhost。有人能幫助我嗎?Java應用程序:訪問不同的計算機上的數據庫

非常感謝

+0

你能發佈完整的錯誤消息嗎? – 2012-02-19 04:41:30

+2

您需要能夠ping或telnet數據庫服務器以確保您可以連接,您是否嘗試過? – 2012-02-19 04:42:40

+0

檢查來自遠程主機的數據庫訪問權限。 – Santosh 2012-02-19 04:43:45

回答

1
  1. 正如你知道的,JDBC在一般情況下,你需要指定連接字符串中的主機。如您所知,您通常在Class.forName()中指定驅動程序,並在Java CLASSPATH中指定驅動程序的.jar目錄。

  2. 您可能正在使用MySql/J連接器 - 我相信這是與您的應用程序一起部署的所有客戶端需求。

  3. 您還需要確保mySql端口(默認3306)處於打開狀態。

  4. Mysql「用戶」是以每臺主機爲基礎定義和授權的。您還需要確保在「用戶」MySQL表中正確設置了它。

  5. 確保您的應用程序記錄了所有可用的異常信息。請在這裏發佈任何具體的錯誤信息。

「希望幫助

PS: 爲‘MySQL工作臺’的唯一關聯是你的應用程序發生在你本地運行,使用MySQL工作臺,正確的工作?如果是這樣,它可能不是這個問題的好標籤...

+0

1.檢查 2. Class.forName(「com.mysql.jdbc.Driver」); 3.做 4.完成 – koool 2012-02-19 04:51:00

1

作爲管理員用戶在數據庫上運行查詢。

GRANT ALL ON db1 TO 'jeffrey'@'%'; 

假設db1是你的架構和jeffrey是你想給訪問用戶。

+0

所以,如果我在我的應用程序有這樣的代碼 CON =的DriverManager.getConnection( 「的jdbc:mysql的:// IP/DB1?」 + 「用戶=傑弗裏和密碼=」); 它應該工作正確嗎? – koool 2012-02-19 05:01:43

+1

是的。它應該工作。從上面的評論 – Santosh 2012-02-19 05:09:35

+0

我試圖ping和它說請求失敗了什麼將是一個解決方案? – koool 2012-02-19 05:14:16

相關問題