我有这个用 Java 写的俄罗斯方 block 游戏,它使用 DB 来记录高分。只要我使用远程 MySQL 数据库,它就可以正常工作,但现在我正在尝试使用 XAMPP MySQL 设置本地主机数据库,并且它在命令中一直像“SQLException: Communications link failure”:
con = java.sql.DriverManager.getConnection("jdbc:mysql://localhost/score", user, psw);
我猜是 URL 或 DB 配置错误,但我真的不知道要检查什么。有什么想法吗?
编辑:我的 friend 通过将 URL 中的“localhost”替换为“127.0.0.1”解决了我的问题(这非常令人尴尬,您可以想象得到 :P )。
所以问题是:为什么 XAMPP 无法将“localhost”转换为 IP 地址以及如何修复它?
最佳答案
Why is XAMPP not able to translate "localhost" into IP address and how to fix it?
这不是 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
关于java - 如何使用 JDBC 连接 XAMPP MySQL 本地数据库?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/2168969/