Помилка розбору конфігураційного файлу YAML: yaml-cpp


10

Я використовую таку команду (машина Windows) з версією оболонки MongoDB: 3.0.7:

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

Зміст файлу mongod.cfg наведено нижче:

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

Отримання помилки нижче:

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

Подібні питання не мають вирішення цього питання.

Що я вже пробував:

  1. Я використовую пробіли (а не вкладки)
  2. Я пробував збереження файлу у форматі ASCII, оскільки в одному з дописів було зазначено, що конфігураційний файл Mongod не повинен зберігатися у форматі, що не є ACSII. Навіть в UTF-8.

Будь ласка, допоможіть мені в цьому.

Відповіді:


10

Повідомлення про помилки вказують на конкретний рядок та стовпець, де у аналізатора YAML виникає проблема з вашим файлом конфігурації, але якщо ви не знайомі з форматом, може бути важко розробити те, що очікується.

Для того, щоб ваш конфігурація був дійсним YAML , потрібні два набори змін :

  1. Додати «простір» між systemLog.pathі storage.dbPathключів і їх значення

    YAML вимагає пробілу між парами ключ / значення, тому повідомляє: "помилка в рядку 4, стовпець 8: незаконне значення карти".

  2. Видаліть подвійні лапки зі значень шляху

    YAML інтерпретує зворотні косої риски всередині цитованих рядків як введення символу втечі, тому повідомляє: "помилка в рядку 3, стовпець 16: невідомий символ втечі". Як альтернативу, ви також можете залишити процитований шлях, але або уникнути відхилення від косої риски ( \\), або використовувати косої риски вперед.

Наступна конфігурація повинна працювати (якщо "G:\NodeApps\data\"мати правильні дозволи для каталогу та файлів):

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

Існує кілька онлайн-тестувальників синтаксису YAML, які можуть бути корисними для усунення неполадок (наприклад: YAML Lint ).


2

yaml НЕ приймає вкладку, ви повинні використовувати простір замість вкладки

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

вище мій файл mongod.cfg,
наприклад між безпекою: та авторизацією, має бути пробіл, вкладка недійсна, надасть вам помилку вище за заголовком.

Ви завжди повинні перевірити свій конфігураційний файл на

перевірити ямл


0
  1. Привід "NodeApps, Data, log in G" повинен існувати.
  2. Пробіл повинен існувати між "path: G:"
  3. Вся лінія повинна бути на одній відстані в космосі.

    systemLog:

    призначення: файл

    шлях: G: / NodeApps / data / log

    сховище:

    dbPath: G: / NodeApps / дані


Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.