我无法从Java客户端连接到我的MongoDB实例。 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地址,但是我无法telnet到IP:运行MongoDb的端口。
这是我的mongo.cfg文件
MongoDb正在Ubuntu机器上的LocalHost上运行 - 所以这可能是我需要配置的区域?任何帮助将不胜感激。
这是启动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
我认为对于小型演示程序是可以的,但不是永久解决方案
答案 0 :(得分:0)
我使用@CodeCaster提供的链接找到答案 - 谢谢。
我添加了" bindIp"进入" mongo.cfg"文件如下所示。这是我的Ubuntu VM的ip地址,我通过使用" 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