YAML yapılandırma dosyasını ayrıştırma hatası: yaml-cpp


10

MongoDB kabuk sürümü ile aşağıdaki komutu (Windows makine) kullanıyorum: 3.0.7:

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

Mongod.cfg dosyasının içeriği aşağıda verilmiştir:

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

Aşağıdaki hatayı alıyorum:

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

Benzer soruların bunun için bir çözümü yok.

Zaten denedim:

  1. Boşluk kullanıyorum (sekme değil)
  2. Mongod yapılandırma dosyasının ACSII olmayan formatta kaydedilmemesi gerektiği mesajlarından birinde bahsedildiği gibi dosyayı ASCII formatında kaydederek kurutmadım. UTF-8'de bile değil.

Lütfen bana bu konuda yardım et.

Yanıtlar:


10

Hata iletileri, YAML ayrıştırıcısının yapılandırma dosyanızla ilgili bir sorun yaşadığı belirli bir satırı ve sütunu belirtir, ancak formata aşina değilseniz, ne beklendiğini çözmek zor olabilir.

Yapılandırmanızı geçerli YAML yapmak için iki değişiklik grubu gereklidir :

  1. systemLog.pathVe storage.dbPathtuşları ile değerleri arasına "boşluk" ekleme

    YAML, anahtar / değer çiftleri arasında boşluk olmasını gerektirir, bu nedenle şunları bildirir: "4. satırda hata, sütun 8: geçersiz harita değeri".

  2. Çift tırnak işaretlerini yol değerlerinizden kaldırın

    YAML, alıntılanan dizelerdeki ters eğik çizgileri bir kaçış karakteri tanıtıyor olarak yorumlar, bu nedenle şunları bildirir: "satır 3'teki hata, sütun 16: bilinmeyen kaçış karakteri". Alternatif olarak, belirtilen yolu da bırakabilirsiniz, ancak ters eğik çizgilerden ( \\) kaçabilir veya eğik çizgi kullanabilirsiniz.

Aşağıdaki yapılandırma çalışmalıdır ( "G:\NodeApps\data\"doğru dizin ve dosya izinlerine sahip olduğu varsayılarak ):

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

YAML sözdizimi için sorunları gidermek için yararlı olabilecek birkaç çevrimiçi test kullanıcısı vardır (örneğin: YAML Lint ).


2

yaml sekmeyi kabul ETMEZ, sekme yerine boşluk kullanmalısınız

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

yukarıda benim mongod.cfg dosyam,
örneğin güvenlik: ve yetkilendirme, boşluk olmalı, sekme geçersiz başlıkta yukarıdaki hatayı verecektir.

yapılandırma dosyanızı her zaman

yaml'i doğrula


0
  1. "NodeApps, Data, log in G" sürücüsü mevcut olmalıdır.
  2. "Path: G:" arasında boşluk olmalıdır
  3. Tüm çizgi bir boşluk mesafesi olmalıdır.

    systemlog:

    hedef dosyası

    yolu: G: / NodeApps / veri / günlük

    depolama:

    dbPath: G: / NodeApps / veri


-4

Pencerelerde "\" çift eğik çizgi ("\") ile değiştirilmelidir

Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.