gpt4 book ai didi

java - 连接到外部 mongo 数据库 (java)

转载 作者:行者123 更新时间:2023-11-29 03:38:26 25 4
gpt4 key购买 nike

我正在尝试连接到我通过 mongolab 创建的 mongo 数据库

我在 mongolab 的数据库页面中提到了标准 uri:enter image description here

我试试这段代码:

String uriString = "mongodb://user:password@ds047037.mongolab.com:47037/db_test_01";
MongoURI uri = new MongoURI(uriString);
try {
DB db = uri.connectDB();
db.authenticate(uri.getUsername(), uri.getPassword());
Set<String> colls = db.getCollectionNames();
for (String s : colls) {
System.out.println(s);
}
System.out.println("done");
} catch (UnknownHostException e) {
System.out.println("UnknownHostException: " + e);
} catch(MongoException me) {
System.out.println("MongoException: " + me);
}

但是,我得到 UnknownHostException: java.net.UnknownHostException: ds047037.mongolab.com

关于 UnknownHostException 的文档说:“抛出表明无法确定主机的 IP 地址。”

怎么了?

最佳答案

看起来像是堆栈中某个点的 DNS 解析问题。 java.net.UnknownHostException是“抛出以指示无法确定主机的 IP 地址”。

Java 问题

问题可能出在 Java 本身。有一个 known issue with Java and IPv6 .您可以尝试将 java.net.preferIPv4Stack 系统属性设置为 true 以查看是否可以解决问题。

作为启动 JVM 时 java 命令的参数:

java -Djava.net.preferIPv4Stack=true YourMainClass

或以编程方式:

System.setProperty("java.net.preferIPv4Stack" , "true");

您还可以尝试升级到最新版本的 Java,以获取所有随附的错误修复。

您的 DNS 服务器或配置有问题

问题也可能与您笔记本电脑/机器上的 DNS 配置有关。您可以使用 dig 查看 DNS 查找返回的内容。下面是我从我的笔记本电脑上得到的输出。您也可以使用 this web version of dig看看你应该得到什么。

% dig ds047037.mongolab.com

; <<>> DiG 9.8.3-P1 <<>> ds047037.mongolab.com
;; global options: +cmd
;; Got answer:
;; ->>HEADER<<- opcode: QUERY, status: NOERROR, id: 20375
;; flags: qr rd ra; QUERY: 1, ANSWER: 4, AUTHORITY: 0, ADDITIONAL: 0

;; QUESTION SECTION:
;ds047037.mongolab.com. IN A

;; ANSWER SECTION:
ds047037.mongolab.com. 120 IN CNAME ds047037-a.mongolab.com.
ds047037-a.mongolab.com. 120 IN CNAME h000432.mongolab.com.
h000432.mongolab.com. 120 IN CNAME ec2-46-51-159-130.eu-west-1.compute.amazonaws.com.
ec2-46-51-159-130.eu-west-1.compute.amazonaws.com. 300 IN A 46.51.159.130

;; Query time: 23 msec
;; SERVER: 192.168.1.1#53(192.168.1.1)
;; WHEN: Sat Jan 12 13:22:24 2013
;; MSG SIZE rcvd: 162

如果您确认您的 DNS 配置/服务器是问题所在,您将需要 determine which DNS servers you're using然后联系所有者/管理员或联系您的 ISP 以确保它们已按应有的方式配置。

关于java - 连接到外部 mongo 数据库 (java),我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/14296750/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com