2010-01-30 93 views
7

我有用Java編寫的這個俄羅斯方塊遊戲,它使用DB記錄高分。它的工作好,只要我使用遠程MySQL數據庫,但現在我想使用MySQL的XAMPP來建立本地主機數據庫,並不斷去像「的SQLException:通信鏈路故障」的命令:如何使用JDBC連接XAMPP MySQL本地數據庫?

con = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/score", user, psw); 

我猜測它是錯誤的URL或數據庫配置,但我真的不知道該檢查什麼。有任何想法嗎?

編輯:我的朋友已經解決了我的問題,用「127.0.0.1」替換URL中的「localhost」(這很令人尷尬,因爲你可以想象:P)。

所以問題是:爲什麼XAMPP無法將「localhost」翻譯成IP地址以及如何解決?

+0

你可以瀏覽到MySQL數據庫與查詢瀏覽器? 我記得有一個Java應用程序遇到類似的問題,它拒絕識別連接字符串中的命名。 – 2010-02-03 20:57:45

+0

不要忘了這個鏈接,這重要的一步 - http://ferdidolot.wordpress.com/2009/06/14/java-mysql-jdbc-tutorial-using-netbeans-part-1/ – 2012-11-23 09:29:35

+0

本帖](HTTP: //forums.netbeans.org/ntopic4896.html)宣稱已經修復它。一探究竟。 – duffymo 2010-01-30 18:58:09

回答

7

爲什麼XAMPP無法翻譯「localhost」的到IP地址,以及如何解決它?

這不是一個XAMPP問題,也不是一個編程問題。這更多的是DNS問題。

要開始,你有一個%SystemRoot%/system32/drivers/etc/hosts文件使用以下行作爲第一行? (因此,所有的意見後,但在此之前的任何其他主機聲明)

127.0.0.1 localhost 

更新:按照該意見,我已經Googled了一下,它看起來像MySQL JDBC驅動程序不吃飯IPv6地址在所有。換句話說,您需要將::1更改爲127.0.0.1。但我也發現了this topic,其中提到,您可以使用以下JVM參數來解決這個問題:

java -Djava.net.preferIPv4Stack=true 
+0

「:: 1 localhost」呢?這應該是一樣的,不是嗎? – 2010-02-05 00:13:40

+0

這很有道理,謝謝你的研究;) – 2010-02-08 08:52:54

1

在MySql中,您必須明確允許您的用戶從本地主機訪問。下面是一個例子(從here拍攝):

mysql> grant usage on *.* to [email protected] identified by 'amarokpasswd'; 
mysql> grant all privileges on amarokdb.* to [email protected] ; 
+0

我使用root,但我也嘗試創建用戶並授予他訪問權限和所有權限,只是爲了確定...不工作:/ – 2010-01-31 01:01:37

2

我嘗試並獲得成功的連接。首先在phpmyadmin創建一個數據庫 - 例如。 「MYDB」 ,然後在代碼把connection.url該值

'jdbc:mysql://localhost:3306/mydb' 

如果不先創建一個數據庫,它不會連接

相關問題