Errore durante l'analisi del file di configurazione YAML: yaml-cpp


10

Sto usando il seguente comando (macchina Windows) con la versione shell MongoDB: 3.0.7:

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

I contenuti del file mongod.cfg sono riportati di seguito:

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

Ottenere l'errore seguente:

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

Domande simili non hanno le soluzioni per questo.

Cosa ho già provato:

  1. Sto usando spazi (non schede)
  2. Non ho cercato di salvare il file in formato ASCII, poiché è stato menzionato in uno dei post che il file di configurazione Mongod non deve essere salvato in formato non ACSII. Neanche in UTF-8.

Per favore, aiutatemi con questo.

Risposte:


10

I messaggi di errore indicano la riga e la colonna specifiche in cui il parser YAML sta riscontrando un problema con il file di configurazione, ma se non si ha familiarità con il formato può essere difficile capire cosa ci si aspetta.

Sono necessari due set di modifiche per rendere valida la tua configurazione YAML :

  1. Aggiungere uno "spazio" tra le systemLog.pathe le storage.dbPathchiavi ei relativi valori

    YAML richiede uno spazio tra le coppie chiave / valore, quindi riporta: "errore alla riga 4, colonna 8: valore della mappa non valido".

  2. Rimuovi le doppie virgolette dai valori del tuo percorso

    YAML interpreta le barre rovesciate all'interno delle stringhe tra virgolette come introducendo un carattere di escape, quindi riporta: "errore alla riga 3, colonna 16: carattere di escape sconosciuto". In alternativa, puoi anche lasciare il percorso tra virgolette ma sfuggire alle barre rovesciate ( \\) o utilizzare le barre in avanti.

La seguente configurazione dovrebbe funzionare (supponendo che "G:\NodeApps\data\"abbia i permessi di directory e file corretti):

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

Esistono diversi tester online per la sintassi YAML che possono essere utili per la risoluzione dei problemi (ad es. YAML Lint ).


2

yaml NON accetta la scheda, è necessario utilizzare lo spazio anziché la scheda

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

sopra è il mio file mongod.cfg,
ad esempio tra sicurezza: e autorizzazione, deve essere spazio, la scheda non è valida ti darà l'errore sopra sul titolo.

dovresti sempre convalidare il tuo file di configurazione su

validare yaml


0
  1. L'unità "NodeApps, Data, login G" deve esistere.
  2. Lo spazio deve esistere tra "percorso: G:"
  3. Tutta la linea deve avere una distanza spaziale.

    registro di sistema:

    destinazione: file

    percorso: G: / NodeApps / dati / log

    Conservazione:

    dbPath: G: / NodeApps / data


-4

"\" dovrebbe essere sostituito con una doppia barra ("\") in Windows

Utilizzando il nostro sito, riconosci di aver letto e compreso le nostre Informativa sui cookie e Informativa sulla privacy.
Licensed under cc by-sa 3.0 with attribution required.