2010-01-30 94 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' 

如果不先创建一个数据库,它不会连接

相关问题