सवाल त्रुटि: डीबीपीएथ मौजूद नहीं है


मैं सेट करता हूं dbpath mongodb कॉन्फ़िगरेशन फ़ाइल में:

#dbpath=/var/lib/mongodb
dbpath=~/data/db

फिर mongodb शुरू करने का प्रयास करें लेकिन त्रुटि मिली:

ERROR: dbpath (~/data/db) does not exist.

हालांकि मैं अस्तित्व की जांच कर सकता हूं ~/data/db आसान:

# cd ~/data/db
user@server:~/data/db# pwd
/root/data/db

जब मैं इसे चलाता हूं ...

# mongod --dbpath ~/data/db

... आउटपुट मिला:

Tue Oct 15 05:05:49.040 [initandlisten] MongoDB starting : pid=3786 port=27017 dbpath=/root/data/db 64-bit host=callzone2
Tue Oct 15 05:05:49.040 [initandlisten] db version v2.4.6
Tue Oct 15 05:05:49.040 [initandlisten] git version: b9925db5eac369d77a3a5f5d98a145eaaacd9673
Tue Oct 15 05:05:49.041 [initandlisten] build info: Linux ip-10-2-29-40 2.6.21.7-2.ec2.v1.2.fc8xen #1 SMP Fri Nov 20 17:48:28 EST 2009 x86_64 BOOST_LIB_VERSION=1_49
Tue Oct 15 05:05:49.041 [initandlisten] allocator: tcmalloc
Tue Oct 15 05:05:49.041 [initandlisten] options: { dbpath: "/root/data/db" }
Tue Oct 15 05:05:49.044 [initandlisten] exception in initAndListen std::exception: locale::facet::_S_create_c_locale name not valid, terminating
Tue Oct 15 05:05:49.044 dbexit: 
Tue Oct 15 05:05:49.044 [initandlisten] shutdown: going to close listening sockets...
Tue Oct 15 05:05:49.044 [initandlisten] shutdown: going to flush diaglog...
Tue Oct 15 05:05:49.044 [initandlisten] shutdown: going to close sockets...
Tue Oct 15 05:05:49.044 [initandlisten] shutdown: waiting for fs preallocator...
Tue Oct 15 05:05:49.044 [initandlisten] shutdown: lock for final commit...
Tue Oct 15 05:05:49.044 [initandlisten] shutdown: final commit...
Tue Oct 15 05:05:49.044 [initandlisten] shutdown: closing all files...
Tue Oct 15 05:05:49.044 [initandlisten] closeAllFiles() finished
Tue Oct 15 05:05:49.044 [initandlisten] shutdown: removing fs lock...
Tue Oct 15 05:05:49.044 dbexit: really exiting now

और ग्राहक दिखाता है कि सर्वर शुरू नहीं हुआ:

# mongo
MongoDB shell version: 2.4.6
connecting to: test
Tue Oct 15 05:08:22.139 Error: couldn't connect to server 127.0.0.1:27017 at src/mongo/shell/mongo.js:145
exception: connect failed

जब मैं इस तरह से चलता हूं ...

# sudo service mongodb restart

... मोंगो लॉग फ़ाइल में आउटपुट मिला:

*********************************************************************
 ERROR: dbpath (~/data/db) does not exist.
 Create this directory or give existing directory in --dbpath.
 See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
Tue Oct 15 05:10:39.311 dbexit: 
Tue Oct 15 05:10:39.311 [initandlisten] shutdown: going to close listening sockets...
Tue Oct 15 05:10:39.311 [initandlisten] shutdown: going to flush diaglog...
Tue Oct 15 05:10:39.311 [initandlisten] shutdown: going to close sockets...
Tue Oct 15 05:10:39.311 [initandlisten] shutdown: waiting for fs preallocator...
Tue Oct 15 05:10:39.311 [initandlisten] shutdown: lock for final commit...
Tue Oct 15 05:10:39.311 [initandlisten] shutdown: final commit...
Tue Oct 15 05:10:39.311 [initandlisten] shutdown: closing all files...
Tue Oct 15 05:10:39.311 [initandlisten] closeAllFiles() finished
Tue Oct 15 05:10:39.311 dbexit: really exiting now

तो बदल नहीं सकते हैं dbpath

मेरा उबंटू संस्करण:

# uname -a
Linux hostName 3.2.0-23-virtual #36-Ubuntu SMP Tue Apr 10 22:29:03 UTC 2012 x86_64 x86_64 x86_64 GNU/Linux

4
2017-10-15 05:15


मूल




जवाब:


मैंने इस समस्या को हल किया:

sudo mongod --dbpath=/var/lib/mongodb और फिर mongo मोंगोड शैल तक पहुंचने के लिए।


3
2018-06-30 11:22





एक सेवा के रूप में मोंगोडीबी क्या उपयोगकर्ता चल रहा है?

यह आमतौर पर है mongod या mongodb, रूट नहीं - और वास्तव में आपको इसे सामान्य रूप से रूट के रूप में नहीं चलाया जाना चाहिए। डिफ़ॉल्ट dbpath उबंटू में है /var/lib/mongodb तो ऐसा लगता है कि आपने कॉन्फ़िगरेशन फ़ाइल में इसे बदल दिया है ~/mongodb/db

यदि आप ऐसा करते हैं, तो ~ सेवा के लिए चल रहा है कि उपयोगकर्ता के लिए घर फ़ोल्डर के रूप में विस्तारित किया जाएगा। इसलिए आपको बनाना होगा /home/mongodb/db या /home/mongod/db/, नहीं /root/db, और सुनिश्चित करें कि प्रासंगिक उपयोगकर्ता द्वारा उस सेटिंग का उपयोग करने के लिए इसका स्वामित्व है।

मैं भ्रम को खत्म करने के लिए एक पूर्ण पथ का उपयोग करने की सिफारिश करेंगे। जैसे फ़ोल्डर बनाएं /data/mongodb/db या इसी तरह और सुनिश्चित करें कि इसका सही स्वामित्व है (देखें यह जवाब उचित अनुमतियों को सेट करने के लिए अधिक)।


1
2017-10-15 10:48





मेरे अनुभव में mongodb लोकेल के बारे में बहुत पसंद है, मेरे पास एक ही समस्या थी, कोशिश करें:

export LANGUAGE=en_US.UTF-8
export LANG=en_US.UTF-8
export LC_ALL=en_US.UTF-8
locale-gen en_US.UTF-8

sudo service mongodb restart

0
2018-05-05 13:14