Error al analizar el archivo de configuración de YAML: yaml-cpp


10

Estoy usando el siguiente comando (máquina Windows) con la versión de shell MongoDB: 3.0.7:

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

El contenido del archivo mongod.cfg se muestra a continuación:

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

Obteniendo el siguiente error:

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

Preguntas similares no tienen las soluciones para esto.

Lo que ya he probado:

  1. Estoy usando espacios (no pestañas)
  2. Intenté guardar el archivo en formato ASCII, como se mencionó en una de las publicaciones que el archivo de configuración de Mongod no debe guardarse en formato que no sea ACSII. Ni siquiera en UTF-8.

Por favor, ayúdame con esto.

Respuestas:


10

Los mensajes de error indican la línea y columna específicas donde el analizador YAML tiene un problema con su archivo de configuración, pero si no está familiarizado con el formato, puede ser difícil determinar qué se espera.

Se requieren dos conjuntos de cambios para que su configuración sea válida YAML :

  1. Añadir un "espacio" entre los systemLog.pathy las storage.dbPathclaves y sus valores

    YAML requiere un espacio entre pares clave / valor, por lo que informa: "error en la línea 4, columna 8: valor de mapa ilegal".

  2. Elimine las comillas dobles de sus valores de ruta

    YAML interpreta las barras invertidas dentro de las cadenas entre comillas como la introducción de un carácter de escape, por lo que informa: "error en la línea 3, columna 16: carácter de escape desconocido". Como alternativa, también puede dejar la ruta entre comillas pero escapar de las barras diagonales inversas ( \\) o utilizar barras diagonales.

La siguiente configuración debería funcionar (suponiendo que "G:\NodeApps\data\"tenga los permisos correctos de directorio y archivo):

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

Existen varios probadores en línea para la sintaxis de YAML que pueden ser útiles para solucionar problemas (por ejemplo: YAML Lint ).


2

yaml NO acepta pestañas, debe usar espacio en lugar de pestañas

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

arriba está mi archivo mongod.cfg,
por ejemplo entre seguridad: y autorización, debe ser espacio, la pestaña no es válida le dará el error anterior en el título.

siempre debe validar su archivo de configuración en

validar yaml


0
  1. La unidad "NodeApps, Data, log in G" debe existir.
  2. Debe existir espacio entre "ruta: G:"
  3. Toda línea debe ser una distancia espacial.

    registro del sistema:

    destino: archivo

    ruta: G: / NodeApps / data / log

    almacenamiento:

    dbPath: G: / NodeApps / data


-4

"\" debe reemplazarse con una barra doble ("\") cuando se encuentre en Windows

Al usar nuestro sitio, usted reconoce que ha leído y comprende nuestra Política de Cookies y Política de Privacidad.
Licensed under cc by-sa 3.0 with attribution required.