mongo:错误:子进程失败,退出错误号为100

时间:2016-08-08 14:32:18

标签: mongodb replication replicaset mongodb-replica-set

我在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)。我收到了同样的错误。

您认为解决方案是什么?

1 个答案:

答案 0 :(得分:0)

通常日志文件会说明错误...但您可以尝试进行一些更改。 把&#34;&#34;圆形字符串(如此处)并添加pidFilePath:

processManagement:    fork:true    pidFilePath:&#34; /var/run/mongodb/mongod.pid"

(当然,“monogdb&#39;目录必须由用户拥有运行mongod的内容”)

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

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