Frage FEHLER: DBpath existiert nicht


ich setze dbpath in der mongodb Konfigurationsdatei:

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

Dann versuche mongodb zu starten, bekomme aber einen Fehler:

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

Obwohl ich die Existenz von überprüfen kann ~/data/db einfach:

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

Wenn ich es betreibe ...

# mongod --dbpath ~/data/db

... wurde ausgegeben:

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

Und der Client zeigt, dass der Server nicht gestartet wurde:

# 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

Wenn ich auf diese Weise renne ...

# sudo service mongodb restart

... wurde in der Mongo-Log-Datei ausgegeben:

*********************************************************************
 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

Also kann sich nicht ändern dbpath.

Meine ubuntu-Version:

# 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


Ursprung




Antworten:


Ich habe das Problem gelöst mit:

sudo mongod --dbpath=/var/lib/mongodb und dann mongo auf die mongodb Shell zugreifen.


3
2018-06-30 11:22





Welchen Benutzer führt MongoDB als Dienst aus?

Das ist normal mongod oder mongodb, nicht root - und eigentlich sollte man es nicht als root im allgemeinen laufen lassen. Der Standard dbpath in Ubuntu ist /var/lib/mongodb so scheint es, dass du das in der config-datei geändert hast ~/mongodb/db.

Wenn Sie das tun, die ~ wird erweitert, um der Benutzerordner für den Benutzer zu sein, auf dem der Dienst ausgeführt wird. Daher müssten Sie erstellen /home/mongodb/db oder /home/mongod/db/nicht /root/dbund stellen Sie sicher, dass der betreffende Benutzer Eigentümer dieser Einstellung ist.

Ich würde empfehlen, einen vollständigen Pfad zu verwenden, um die Verwirrung zu beseitigen. Erstellen Sie einen Ordner wie /data/mongodb/db oder ähnlich und stellen Sie sicher, dass es die richtige Eigentümerschaft hat (siehe diese Antwort Weitere Informationen zum Festlegen von Berechtigungen finden Sie hier.


1
2017-10-15 10:48





Nach meiner Erfahrung ist Mongodb sehr wählerisch über das Gebietsschema, ich hatte die gleichen Probleme, versuchen Sie:

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