繁体   English   中英

无法从主机Windows上的Java Client连接到来宾Ubuntu VM上安装的MongoDb

[英]Unable to connect to MongoDb installed on a guest Ubuntu VM from Java Client on host Windows

我无法从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到运行MongoDb的IP:Port。

在此处输入图片说明

这是我的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”参数,则可以使它正常工作

须藤/opt/mongodb/mongodb-linux-x86_64-ubuntu1604-3.6.3/bin/mongod --bind_ip_all --config /var/opt/mongodb2/mongo.cfg

我想这对于一个小型演示程序是可以的,但不能作为永久解决方案

我使用@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

并且测试演示Java客户端程序现在可以正常运行, 在此处输入图片说明

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM