Kesalahan saat mengurai file konfigurasi YAML: yaml-cpp


10

Saya menggunakan perintah berikut (mesin Windows) dengan versi shell MongoDB: 3.0.7:

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

Isi file mongod.cfg diberikan di bawah ini:

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

Mendapatkan kesalahan di bawah ini:

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

Pertanyaan serupa tidak memiliki solusi untuk ini.

Apa yang sudah saya coba:

  1. Saya menggunakan spasi (bukan tab)
  2. Saya mencoba dengan menyimpan file dalam format ASCII, seperti yang disebutkan dalam salah satu posting bahwa file konfigurasi Mongod tidak boleh disimpan dalam format non-ACSII. Bahkan di UTF-8.

Tolong bantu saya dengan ini.

Jawaban:


10

Pesan-pesan kesalahan menunjukkan baris dan kolom tertentu di mana parser YAML mengalami masalah dengan file konfigurasi Anda, tetapi jika Anda tidak terbiasa dengan format itu bisa sulit untuk mengetahui apa yang diharapkan.

Diperlukan dua set perubahan untuk membuat YAML konfigurasi Anda valid :

  1. Tambahkan "ruang" antara systemLog.pathdan storage.dbPathkunci dan nilai-nilai mereka

    YAML membutuhkan ruang antara pasangan kunci / nilai, jadi laporkan: "kesalahan pada baris 4, kolom 8: nilai peta ilegal".

  2. Hapus tanda kutip ganda dari nilai jalur Anda

    YAML menafsirkan garis miring terbalik di dalam string yang dikutip sebagai memperkenalkan karakter pelarian, sehingga melaporkan: "kesalahan pada baris 3, kolom 16: karakter pelarian tidak diketahui". Sebagai alternatif, Anda juga bisa membiarkan path dikutip tetapi tidak menggunakan garis miring terbalik ( \\) atau menggunakan garis miring ke depan.

Konfigurasi berikut harus berfungsi (dengan asumsi "G:\NodeApps\data\"memiliki izin direktori dan file yang benar):

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

Ada beberapa penguji online untuk sintaks YAML yang dapat berguna untuk memecahkan masalah (misalnya: YAML Lint ).


2

yaml JANGAN menerima tab, Anda harus menggunakan ruang alih-alih tab

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

di atas adalah file mongod.cfg saya,
misalnya antara keamanan: dan otorisasi, harus spasi, tab tidak valid akan memberi Anda kesalahan di atas pada judul.

Anda harus selalu memvalidasi file konfigurasi Anda di

memvalidasi yaml


0
  1. Drive "NodeApps, Data, log in G" harus ada.
  2. Ruang harus ada di antara "path: G:"
  3. Semua garis harus satu jarak ruang.

    catatan sistem:

    tujuan: file

    jalur: G: / NodeApps / data / log

    penyimpanan:

    dbPath: G: / NodeApps / data


Dengan menggunakan situs kami, Anda mengakui telah membaca dan memahami Kebijakan Cookie dan Kebijakan Privasi kami.
Licensed under cc by-sa 3.0 with attribution required.