Mongo:错误:子进程失败,以100为错误代码退出。

4
我成功地在mongodb上创建了一个由三个实例组成的副本集。每个副本集成员都是使用配置文件实例化的。当我测试时,一切都很顺利,并且成功地执行了,没有任何错误。
接下来的步骤是启用内部身份验证。为了做到这一点,我遵循了mongo文档中在这个页面中找到的步骤:
[a] https://docs.mongodb.com/v3.0/tutorial/enable-internal-authentication/ 首先,我使用以下两行代码生成了一个密钥文件。
openssl rand -base64 755 > <path-to-keyfile>
chmod 400 <path-to-keyfile> 

我没有root权限,因此无法执行这些代码,所以我使用了root用户来执行。

然后我将密钥文件添加到实例的配置文件中。

# Where and how to store data.
storage:
  dbPath: /mon/data1/
journal:
  enabled: true
#engine:
#mmapv1:
#wiredTiger:

#where to write logging data.
systemLog:
  destination: file
  logAppend: true
  path: /var/log/mongodb/mongod1.log

#network interfaces
net:
  port: 27018
  bindIp: 127.0.0.1

processManagement:
  fork: true

security:
  keyFile: /etc/keyFiles

replication:
  replSetName: "myRepl"

现在为了重新启动Mongo,我写了以下命令,我每次都使用它。
sudo mongod --config /etc/mongod1.config

我遇到了上述错误。我确保所有权都归属于root,包括dbpath、配置文件和密钥文件。

然后,我将所有权都转移到了普通用户,并尝试以普通用户身份启动mongod(不使用sudo)。但我收到了相同的错误信息。

你认为解决方案是什么?


你能发一下你的Mongo日志吗? - sergiuz
请查看mongod日志文件,并将任何相关的消息添加到您的帖子中。 - helmy
1个回答

0

通常日志文件会告诉你出了什么问题...但你可以尝试做一些更改。 在字符串周围加上""(就像下面这样),并添加pidFilePath:

processManagement: fork:true pidFilePath:“/var/run/mongodb/mongod.pid”

(当然,“monogdb”目录必须归属于您运行mongod的用户)

然后测试事物的一个好方法是将那些配置文件值作为参数放入(而不是--fork),这样您就会得到错误消息,告诉您出了什么问题。

mongod --dbpath /mon/data1/ --logpath /var/log/mongodb/mongod1.log --logappend --keyFile /etc/keyFiles --replSet myRepl


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