MongoDB解析副本集的YAML Config非法映射值时出错

问题描述

这是我的/etc/mongodb.conf-使用MongoDB 3.6。 我在启动mongod时正在解析配置文件时遇到了挑战。 我在每个冒号后面有一个空格,在每个新行上都有两个空格 我从以下的mongoDB文档中获取了副本集示例:https://docs.mongodb.com/manual/reference/configuration-options/#replication-options

dbpath=/home/ubuntu/data/db
logpath=/home/ubuntu/data/db/log/mongo.log
logappend=true
journal=true

replication:
  replSetName: rep

net:
  bindIp: 127.0.0.1
  port: 27017

错误是:

 Error parsing YAML config file: yaml-cpp: error at line 6,column 12: illegal map value

我发送的命令是

 Error parsing YAML config file: yaml-cpp: error at line 6,column 12: illegal map value

尝试“ mongod --help”以获取更多信息

解决方法

我不知道您认为前四行的含义,但是它们肯定不是YAML;取而代之的是,它们使用类似于.properties文件的格式,其中=将属性名称与值分开。

由于YAML中的=只是内容,它会将前六行解析为多行标量,这意味着YAML中这些行的值就是标量

dbpath=/home/ubuntu/data/db logpath=/home/ubuntu/data/db/log/mongo.log logappend=true journal=true
replication

(将单个换行符折叠成一个空格,空行会产生换行符。)

现在,发生错误是因为YAML不允许多行标量成为映射的隐式键。隐式键是在同一行上:之前的标量,它们构成映射键。

您可以通过删除前四行或将其转换为正确的YAML来纠正错误。您不清楚这些行的用途是什么,因为并非每个名称在您链接的文档中都有相应的设置。