如何使用JDBC连接XAMPP MySQL本地数据库?

时间:2010-01-30 18:42:37

标签: java mysql jdbc xampp

我有这个用Java编写的俄罗斯方块游戏,它使用数据库来记录高分。只要我使用远程MySQL数据库,它就可以工作了,但是现在我正在尝试使用XAMPP MySQL设置localhost数据库,它在命令中继续像“SQLException:Communications link failure”:

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

我猜这是错误的URL或数据库配置,但我真的不知道要检查什么。有什么想法吗?

编辑:我的朋友通过将URL中的“localhost”替换为“127.0.0.1”来解决我的问题(这是非常令人尴尬的,因为你可以想象:P)。

所以问题是:为什么XAMPP无法将“localhost”转换为IP地址以及如何修复它?

3 个答案:

答案 0 :(得分: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 

答案 1 :(得分:2)

我尝试了成功的连接。首先在 phpmyadmin 中创建一个数据库 - 例如。 'MYDB' 然后在代码中将connection.url与此值放在一起

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

如果您不首先创建数据库,则不会连接

答案 2 :(得分:1)

在MySql中,您必须允许显式地从localhost访问您的用户。以下是一个示例(摘自here):

mysql> grant usage on *.* to amarokuser@localhost identified by 'amarokpasswd';
mysql> grant all privileges on amarokdb.* to amarokuser@localhost ;