无法从主机 Windows 上的 Java 客户端连接到安装在来宾 Ubuntu VM 上的 MongoDb
Unable to connect to MongoDb installed on a guest Ubuntu VM from Java Client on host Windows
我无法从我的 Java 客户端连接到我的 Mongo 数据库实例。 MongoDb 实例安装在 VirtualBox 内的 Ubuntu VM 会话中。当我在 Ubuntu 中从 Mongo shell 命令 运行 时,Mongo 工作正常 - 但我无法从我的 Windows 7 Intellij 会话连接到它.
我的Java客户端代码如下,
package com.mycom.mongodb.demo;
import com.mongodb.MongoClient;
public class App
{
public static void main( String[] args )
{
MongoClient mongoClient = new MongoClient("192.168.171.68", 27017);
mongoClient.getDatabaseNames().forEach(System.out::println);
}
}
但我收到如下所示的错误消息。
我可以 Ping 我的 Ubuntu 盒子的 IP 地址,但我无法远程登录到 MongoDb 正在 运行ning 的 IP:Port .
这是我的 mongo.cfg 文件
MongoDb 在 Ubuntu 机器上的 LocalHost 上 运行ning - 所以也许这是我需要配置的区域?任何帮助将不胜感激。
这是我启动 mongod 的命令行
sudo /opt/mongodb/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin/mongod --config /var/opt/mongodb2/mongo.cfg
更新:
如果我包含“--bind_ip_all”参数,即
,我就能让它工作
sudo /opt/mongodb/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin/mongod
--bind_ip_all --config /var/opt/mongodb2/mongo.cfg
我想这对于一个小的演示程序来说是可以的,但不是一个永久的解决方案
我使用@CodeCaster 提供的 link 找到了答案 - 谢谢。
我将 "bindIp" 条目添加到 "mongo.cfg" 文件中,如下所示。这是我的 Ubuntu 虚拟机的 IP 地址,我使用终端 window.
中的 "ifconfig" 找到了它
robbie70@robbie70-vm-ubuntu64:~$ more /var/opt/mongodb2/mongo.cfg
net:
port: 27017
bindIp: 192.168.171.68
systemLog:
destination: file
path: "/var/opt/mongodb2/logs/mongodb2.log"
logAppend: true
quiet: false
storage:
dbPath: "/var/opt/mongodb2/data"
现在当我开始时 MongoDb 我 不 在命令行中指定“--bind_ip_all”,
sudo /opt/mongodb/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin/mongod --config /var/opt/mongodb2/mongo.cfg
和测试演示 Java 客户端程序现在运行正常,
我无法从我的 Java 客户端连接到我的 Mongo 数据库实例。 MongoDb 实例安装在 VirtualBox 内的 Ubuntu VM 会话中。当我在 Ubuntu 中从 Mongo shell 命令 运行 时,Mongo 工作正常 - 但我无法从我的 Windows 7 Intellij 会话连接到它.
我的Java客户端代码如下,
package com.mycom.mongodb.demo;
import com.mongodb.MongoClient;
public class App
{
public static void main( String[] args )
{
MongoClient mongoClient = new MongoClient("192.168.171.68", 27017);
mongoClient.getDatabaseNames().forEach(System.out::println);
}
}
但我收到如下所示的错误消息。
我可以 Ping 我的 Ubuntu 盒子的 IP 地址,但我无法远程登录到 MongoDb 正在 运行ning 的 IP:Port .
这是我的 mongo.cfg 文件
MongoDb 在 Ubuntu 机器上的 LocalHost 上 运行ning - 所以也许这是我需要配置的区域?任何帮助将不胜感激。
这是我启动 mongod 的命令行
sudo /opt/mongodb/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin/mongod --config /var/opt/mongodb2/mongo.cfg
更新: 如果我包含“--bind_ip_all”参数,即
,我就能让它工作sudo /opt/mongodb/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin/mongod --bind_ip_all --config /var/opt/mongodb2/mongo.cfg
我想这对于一个小的演示程序来说是可以的,但不是一个永久的解决方案
我使用@CodeCaster 提供的 link 找到了答案 - 谢谢。
我将 "bindIp" 条目添加到 "mongo.cfg" 文件中,如下所示。这是我的 Ubuntu 虚拟机的 IP 地址,我使用终端 window.
中的 "ifconfig" 找到了它robbie70@robbie70-vm-ubuntu64:~$ more /var/opt/mongodb2/mongo.cfg
net:
port: 27017
bindIp: 192.168.171.68
systemLog:
destination: file
path: "/var/opt/mongodb2/logs/mongodb2.log"
logAppend: true
quiet: false
storage:
dbPath: "/var/opt/mongodb2/data"
现在当我开始时 MongoDb 我 不 在命令行中指定“--bind_ip_all”,
sudo /opt/mongodb/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin/mongod --config /var/opt/mongodb2/mongo.cfg
和测试演示 Java 客户端程序现在运行正常,