Erreur lors de l'analyse du fichier de configuration YAML: yaml-cpp


10

J'utilise la commande suivante (machine Windows) avec la version shell MongoDB: 3.0.7:

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

Le contenu du fichier mongod.cfg est donné ci-dessous:

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

Obtenir l'erreur ci-dessous:

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

Des questions similaires n'ont pas de solutions pour cela.

Ce que j'ai déjà essayé:

  1. J'utilise des espaces (pas des tabulations)
  2. Je n'ai pas essayé d'enregistrer le fichier au format ASCII, car il a été mentionné dans l'un des articles que le fichier de configuration Mongod ne doit pas être enregistré au format non ACSII. Pas même en UTF-8.

S'il vous plait, j'ai besoin de votre aide avec ceci.

Réponses:


10

Les messages d'erreur indiquent la ligne et la colonne spécifiques où l'analyseur YAML rencontre un problème avec votre fichier de configuration, mais si vous n'êtes pas familier avec le format, il peut être difficile de déterminer ce qui est attendu.

Deux ensembles de modifications sont nécessaires pour rendre votre configuration valide YAML :

  1. Ajouter un « espace » entre les systemLog.pathet les storage.dbPathclés et leurs valeurs

    YAML nécessite un espace entre les paires clé / valeur, donc signale: "erreur à la ligne 4, colonne 8: valeur de carte illégale".

  2. Supprimez les guillemets doubles de vos valeurs de chemin

    YAML interprète les barres obliques inverses à l'intérieur des chaînes entre guillemets comme introduisant un caractère d'échappement, donc signale: "erreur à la ligne 3, colonne 16: caractère d'échappement inconnu". Comme alternative, vous pouvez également laisser le chemin indiqué mais échapper aux barres obliques inverses ( \\) ou utiliser des barres obliques.

La configuration suivante devrait fonctionner (en supposant que "G:\NodeApps\data\"le répertoire et les autorisations de fichier sont corrects):

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

Il existe plusieurs testeurs en ligne pour la syntaxe YAML qui peuvent être utiles pour résoudre les problèmes (par exemple: YAML Lint ).


2

yaml n'accepte pas l'onglet, vous devez utiliser l'espace au lieu de l'onglet

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

ci-dessus est mon fichier mongod.cfg,
par exemple entre la sécurité: et l'autorisation, doit être un espace, l'onglet n'est pas valide vous donnera l'erreur ci-dessus sur le titre.

vous devez toujours valider votre fichier de configuration à

valider yaml


0
  1. Le lecteur "NodeApps, Data, log in G" doit exister.
  2. Un espace doit exister entre "chemin: G:"
  3. Toute ligne doit être à une distance d'espace.

    journal du système:

    destination: fichier

    chemin: G: / NodeApps / data / log

    espace de rangement:

    dbPath: G: / NodeApps / data


-4

"\" doit être remplacé par une double barre oblique ("\") dans les fenêtres

En utilisant notre site, vous reconnaissez avoir lu et compris notre politique liée aux cookies et notre politique de confidentialité.
Licensed under cc by-sa 3.0 with attribution required.