设置多个绑定ip时,mongodb不会作为服务(仅手动)启动?

时间:2018-10-15 22:59:14

标签: mongodb startup

前几天,当我尝试使用mongodb Compass连接到远程(LAN内)mongo服务器时遇到了这个问题。 因此,我这样编辑mongodb.config:

port = 27017
bind_ip = 127.0.0.1,192.168.2.101

其中192.168.2.101是私有mongo服务器ip,我设法与Compass连接。 问题是,当我使用mongodb.config中的上述配置启动或重新启动服务器时,mongodb作为服务拒绝自动启动,我必须使用终端手动启动它:

sudo service mongodb start

日志文件坚持我在启动时尝试启动服务的问题是:

listen(): bind() failed errno:99 Cannot assign requested address for socket: 192.168.2.101:27017
Failed to set up sockets during startup.

但是我已经用netstat(作为用户和root)进行了检查,没有任何东西消耗端口27017,我在启动时绑定了私有ip。 有趣的是,启动后,如果我手动启动mongodb,则一切正常,并且localhost和private ip均正确绑定。

因此,为了使其更清楚,这是步骤的简短时间表:

  1. MongoDb可以正常启动,并在此配置下自行启动->

    port = 27017
    bind_ip = 127.0.0.1
    
  2. 我编辑mongodb.config以便像这样绑定到另一个IP->

    port = 27017
    bind_ip = 127.0.0.1,192.168.2.101
    
  3. 我重新启动mongo服务-不重新启动服务器计算机(一切正常)

  4. 现在重新启动服务器(在启动mongodb时,状态会显示套接字错误,并且 无法作为服务启动)
  5. 我手动启动mongo服务(启动并正常运行,状态为 好)

因此出现的问题是: 为什么当我在mongodb.config中绑定第二个IP地址时,mongo服务将在重新启动后无法自动启动,并且需要手动启动(在没有套接字分配错误的情况下,它可以正常运行)和/或为什么套接字错误仅在启动时发生而不是手动启动? 问题可能在哪里?

在此先感谢您,我将继续尝试解决方案,但任何帮助将不胜感激。

p.s。我不想使用0.0.0.0绑定,也不希望使用bash启动该服务。我使用Debian Stretch和Mongo 3.2.11。

0 个答案:

没有答案