MongoDBシェルバージョン3.0.7で次のコマンド(Windowsマシン)を使用しています。
mongod --config "G:\NodeApps\mongod.cfg" --install
Mongod.cfgファイルの内容を以下に示します。
systemLog:
destination: file
path:"G:\NodeApps\data\log"
storage:
dbPath:"G:\NodeApps\data"
以下のエラーを取得:
Error parsing YAML config file: yaml-cpp: error at line 4, column 8: illegal map value
try 'mongod --help' for more information
同様の質問にはこれに対する解決策がありません。
私がすでに試したこと:
これで私を助けてください。
エラーメッセージは、YAMLパーサーが構成ファイルで問題を起こしている特定の行と列を示しますが、形式に慣れていない場合は、予期される内容を理解するのが難しい場合があります。
設定を行うには2セットの変更が必要です 有効なYAML :
systemLog.path
キーとstorage.dbPath
キーとその値の間に「スペース」を追加します
YAMLはキーと値のペアの間にスペースを必要とするため、「行4、列8のエラー:マップ値が不正です」と報告します。
パス値から二重引用符を削除します
YAMLは引用符で囲まれた文字列内のバックスラッシュをエスケープ文字の導入として解釈するため、「行3のエラー、列16:不明なエスケープ文字」を報告します。別の方法として、パスを引用符で囲んだままバックスラッシュ(\\
)をエスケープするか、スラッシュを使用することもできます。
次の構成が機能するはずです("G:\NodeApps\data\"
に適切なディレクトリとファイルのアクセス許可があると仮定)。
systemLog:
destination: file
path: G:\NodeApps\data\log
storage:
dbPath: G:\NodeApps\data
問題のトラブルシューティングに役立つYAML構文のオンラインテスターがいくつかあります(例: YAML Lint )。
yamlはタブを受け入れません。タブの代わりにスペースを使用する必要があります
systemLog:
destination: file
path: c:\data\log\mongod.log
storage:
dbPath: c:\data\db
security:
authorization: enabled
net:
bindIp: 127.0.0.1
port: 27017
上記は私のmongod.cfgファイルです。
たとえば、セキュリティ:と承認の間、スペースである必要があります。タブが無効な場合、上記のタイトルのエラーが発生します。
常に設定ファイルを検証する必要があります
すべての線は1スペースの距離でなければなりません。
システムログ:
宛先:ファイル
パス:G:/ NodeApps/data/log
ストレージ:
dbPath:G:/ NodeApps/data