web-dev-qa-db-fra.com

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

J'utilise la commande suivante (machine Windows) avec la version MongoDB Shell: 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é en enregistrant 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 au format UTF-8 .

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

10
Raj Wadhwa

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 YAML valide :

  1. Ajoutez un "espace" entre les systemLog.path et storage.dbPath clé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 utilisez des barres obliques.

La configuration suivante devrait fonctionner (en supposant que "G:\NodeApps\data\" possède les autorisations de répertoire et de fichier appropriées):

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 ).

10
Stennie

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

2
hoogw
  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

0
BehrouzMoslem