Mongo服务启动或重启总是失败

14

我已经安装了MongoDB,然后创建了一个Mongo服务:

 [Unit]
    Description=High-performance, schema-free document-oriented database
    After=network.target

    [Service]
    User=mongodb
    ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf

    [Install]
    WantedBy=multi-user.target

但是当我启动服务并检查状态时,我总是会收到这个错误:

● mongodb.service - High-performance, schema-free document-oriented database
   Loaded: loaded (/etc/systemd/system/mongodb.service; enabled; vendor preset: enabled)
   Active: failed (Result: exit-code) since Mon 2017-04-24 13:08:55 UTC; 6min ago
  Process: 1094 ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf (code=exited, status=48)
 Main PID: 1094 (code=exited, status=48)

Apr 24 13:08:54 ip-172-31-37-163 systemd[1]: Started High-performance, schema-free document-oriented database.
Apr 24 13:08:55 ip-172-31-37-163 systemd[1]: mongodb.service: Main process exited, code=exited, status=48/n/a
Apr 24 13:08:55 ip-172-31-37-163 systemd[1]: mongodb.service: Unit entered failed state.
Apr 24 13:08:55 ip-172-31-37-163 systemd[1]: mongodb.service: Failed with result 'exit-code'.
5个回答

18
问题出在配置文件上,将

bindIp:127.0.0.1,X.X.X.X

更改为

bindIp: [127.0.0.1,X.X.X.X]

解决了我的问题。

1
类似的问题在这里出现了 https://dev59.com/pl0Z5IYBdhLWcg3w8kH3 。 - Rafael Valero

4

尝试更改所有者权限

chown -R mongodb:mongodb /var/lib/mongodb

chown mongodb:mongodb /tmp/mongodb-27017.sock


2

在 MongoDB 3.6 中,由 @Chlebta 提议的括号对我没有起作用,返回错误信息:

mongod.service: 主进程退出,代码=退出,状态为 2/INVALIDARGUMENT

我的错误在于将 IP 地址用逗号和空格分隔。地址之间只能使用逗号:

bindIp: 127.0.0.1,X.X.X.X,Y.Y.Y.Y

绑定IP时没有大写字母“P”。即使进行了更正,我仍然卡住了。 - François Guthmann
请修正拼写错误,谢谢。另外,在文件中查找制表符。配置文件只能使用空格。 - Rodrigo Pinto
我会检查一下。我认为问题在于这些IP需要在同一个网络上,而我正在尝试允许外部IP访问数据库。 - François Guthmann
嗯,这就是我正在做的事情。但是编写我正在编辑配置文件的机器的IP与编写127.0.0.1几乎相同,对吧?这是我的完整问题。我有一台安装了Express/Nodejs服务器和MongoDB/Mongod守护程序的机器。如果我在配置文件中写入BindIp: www.myAddress.com,服务器可以很好地与数据库通信。我想做的是在没有bindAllIp: true参数的情况下,从另一台计算机使用Mongo Compass浏览我的数据库。 - François Guthmann
这就是做法?我不知道软件可以自己处理SSH连接。太好了,我得试试这个。 顺便说一句,Robo3T比Compass好多了,已经改变了我的生活。 谢谢,伙计! - François Guthmann
显示剩余5条评论

1

Ubuntu 20.04和MongoDB服务器版本4.4.2的更新...

对我来说,问题最终是因为我试图使用我的计算机的公共IP地址。

一旦我指定了我的私人IP地址,一切都开始正常工作。mongod服务开始没有任何错误,并且我现在能够从远程机器连接到它。

在Ubuntu上,您可以使用以下命令获取您的私有IP地址:

hostname -I | awk '{print $1}'

以下是我在/etc/mongod.conf中的内容(仅显示相关部分和部分私有IP地址):
net:
  port: 27017
  bindIp: 127.0.0.1, 172.##.##.##

security:
  authorization: enabled

请注意,将两个IP地址括在括号中(如已接受的答案中所示)对我无效,并导致mongod状态代码为2(实际上是 mongod.conf 文件中的语法错误)。此外,逗号后面的空格现在似乎可以使用,但不是必需的。

1
这对我在18.04上也解决了问题。 - Madbreaks

-4

我刚刚重启了系统(sudo reboot),它对我起作用了。我不知道为什么。


网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接