Fehler beim Parsen der YAML-Konfigurationsdatei: yaml-cpp


10

Ich verwende den folgenden Befehl (Windows-Computer) mit der MongoDB-Shell-Version: 3.0.7:

mongod --config "G:\NodeApps\mongod.cfg" --install

Der Inhalt der Datei mongod.cfg ist unten angegeben:

systemLog:
    destination: file
    path:"G:\NodeApps\data\log"
storage:
    dbPath:"G:\NodeApps\data"

Den folgenden Fehler erhalten:

Error parsing YAML config file: yaml-cpp: error at line 4, column 8: illegal map value
try 'mongod --help' for more information

Ähnliche Fragen haben keine Lösungen dafür.

Was ich schon versucht habe:

  1. Ich verwende Leerzeichen (keine Tabulatoren)
  2. Ich habe versucht, die Datei im ASCII-Format zu speichern, da in einem der Beiträge erwähnt wurde, dass die Mongod-Konfigurationsdatei nicht im Nicht-ACSII-Format gespeichert werden sollte. Nicht einmal in UTF-8.

Bitte helfen Sie mir dabei.

Antworten:


10

Die Fehlermeldungen geben die bestimmte Zeile und Spalte an, in der der YAML-Parser ein Problem mit Ihrer Konfigurationsdatei hat. Wenn Sie jedoch mit dem Format nicht vertraut sind, kann es schwierig sein, die erwarteten Ergebnisse zu ermitteln.

Zwei Änderungssätze sind erforderlich, damit Ihre Konfiguration YAML gültig ist :

  1. Fügen Sie einen „Raum“ zwischen den systemLog.pathund storage.dbPathTasten und ihre Werte

    YAML benötigt ein Leerzeichen zwischen Schlüssel / Wert-Paaren, daher wird Folgendes gemeldet: "Fehler in Zeile 4, Spalte 8: Unzulässiger Kartenwert".

  2. Entfernen Sie die doppelten Anführungszeichen aus Ihren Pfadwerten

    YAML interpretiert Backslashes in Zeichenfolgen in Anführungszeichen als Einführung eines Escape-Zeichens und meldet daher: "Fehler in Zeile 3, Spalte 16: Unbekanntes Escape-Zeichen". Alternativ können Sie auch den angegebenen Pfad belassen, aber entweder die umgekehrten Schrägstriche ( \\) umgehen oder Schrägstriche verwenden.

Die folgende Konfiguration sollte funktionieren (vorausgesetzt, sie "G:\NodeApps\data\"verfügt über die richtigen Verzeichnis- und Dateiberechtigungen):

systemLog:
    destination: file
    path: G:\NodeApps\data\log
storage:
    dbPath: G:\NodeApps\data

Es gibt mehrere Online-Tester für die YAML-Syntax, die zur Behebung von Problemen hilfreich sein können (z. B. YAML Lint ).


2

yaml akzeptieren keine Tabulatoren, Sie müssen Leerzeichen anstelle von Tabulatoren verwenden

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

oben ist meine mongod.cfg-Datei,
zum Beispiel zwischen Sicherheit: und Autorisierung, muss Leerzeichen sein, Tab ist ungültig, gibt Ihnen den Fehler oben auf Titel.

Sie sollten Ihre Konfigurationsdatei immer unter validieren

yaml validieren


0
  1. Das Laufwerk "NodeApps, Daten, Anmeldung G" muss vorhanden sein.
  2. Zwischen "path: G:" muss ein Leerzeichen stehen.
  3. Alle Zeilen müssen einen Abstand voneinander haben.

    Systemprotokoll:

    Zieldatei

    Pfad: G: / NodeApps / data / log

    Lager:

    dbPath: G: / NodeApps / data


-4

"" sollte in Windows durch einen doppelten Schrägstrich ("") ersetzt werden

Durch die Nutzung unserer Website bestätigen Sie, dass Sie unsere Cookie-Richtlinie und Datenschutzrichtlinie gelesen und verstanden haben.
Licensed under cc by-sa 3.0 with attribution required.