YAML config फ़ाइल पार्स करने में त्रुटि: yaml-cpp


10

मैं 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 config फाइल को गैर-ACSII प्रारूप में सहेजा नहीं जाना चाहिए। यूटीएफ -8 में भी नहीं।

इसमें मेरी मदद करो।

जवाबों:


10

त्रुटि संदेश विशिष्ट रेखा और स्तंभ को इंगित करते हैं, जहां 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. अंतरिक्ष "पथ: जी:" के बीच मौजूद होना चाहिए
  3. सभी लाइन एक स्थान की दूरी होनी चाहिए।

    सिस्टम लॉग:

    गंतव्य: फ़ाइल

    पथ: जी: / NodeApps / डेटा / लॉग

    भंडारण:

    dbPath: G: / NodeApps / डेटा


-4

विंडोज़ में "\" को डबल स्लैश ("\") से बदला जाना चाहिए

हमारी साइट का प्रयोग करके, आप स्वीकार करते हैं कि आपने हमारी Cookie Policy और निजता नीति को पढ़ और समझा लिया है।
Licensed under cc by-sa 3.0 with attribution required.