J'ai installé MongoDB à l'aide de macports et essayé d'exécuter la commande mongo
afin de démarrer le shell mongo. J'ai reçu les erreurs suivantes:
warning: Failed to connect to 127.0.0.1:27017, reason: errno:61 Connection refused
Error: couldn't connect to server 127.0.0.1:27017 (127.0.0.1), connection attempt failed
at src/mongo/Shell/mongo.js:146
J'ai ensuite exécuté mongod
et j'ai reçu l'erreur suivante:
$ [initandlisten] MongoDB starting : pid=11984 port=27017 dbpath=/data/db 64-bit Host=Nikitas-MacBook-Air.local
$ [initandlisten]
$ [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
$ [initandlisten] db version v2.6.0
$ [initandlisten] git version: nogitversion
$ [initandlisten] build info: Darwin tennine-slave.macports.org 13.1.0 Darwin Kernel Version
13.1.0: Thu Jan 16 19:40:37 PST 2014; root:xnu-2422.90.20~2/RELEASE_X86_64 x86_64 BOOST_LIB_VERSION=1_55
$ [initandlisten] allocator: tcmalloc
$ [initandlisten] options: {}
$ [initandlisten] exception in initAndListen: 10296
*********************************************************************
ERROR: dbpath (/data/db) does not exist.
Create this directory or give existing directory in --dbpath.
See http://dochub.mongodb.org/core/startingandstoppingmongo
*********************************************************************
, terminating
$ [initandlisten] dbexit:
$ [initandlisten] shutdown: going to close listening sockets...
$ [initandlisten] shutdown: going to flush diaglog...
$ [initandlisten] shutdown: going to close sockets...
$ [initandlisten] shutdown: waiting for fs preallocator...
$ [initandlisten] shutdown: lock for final commit...
$ [initandlisten] shutdown: final commit...
$ [initandlisten] shutdown: closing all files...
$ [initandlisten] closeAllFiles() finished
$ [initandlisten] dbexit: really exiting now
Où créer le /data/db
répertoire, à la racine? La deuxième erreur serait-elle la raison du errno:61
lorsque j'exécute mongo
?
Oui, vous créeriez /data/db
à la racine. Documentation MongoDB suggère la commande suivante pour la création sur OS X mkdir -p /data/db
.
Concernant votre deuxième question, oui également. Étant donné que le démon Mongo n'a pas pu démarrer et n'écoute pas, vous obtenez l'erreur de connexion.
Par défaut, MongoDB est /data/db
pour le répertoire de données. Vous pouvez remplacer la valeur par défaut à l'aide de --dbpath
option sur la commande mongod
(également sur le lien doc ci-dessus).
J'ai rencontré un problème similaire. J'ai détaillé la trace d'erreur et la solution sur ce blog Voici le processus étape par étape que j'ai fait pour résoudre ce problème:
Étape 1 - Installation (Ne suivez pas cette étape si vous avez déjà installé MongoDB):
brew update
brew install mongodb
Étape 2 - Exécutez Mongo Daemon:
mkdir -p /data/db
Sudo mongod
Étape 3 - Exécutez l'interface Mongo Shell:
mongo
Dans cette séquence, j'ai pu exécuter la commande mongo sans aucune erreur.
** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
vous pouvez ajouter une ligne dans votre/etc/bashrc, l'avertissement disparaîtra.
ulimit -S -n 1024
utilisation chown -R {user} /data/db
pour changer le propriétaire de /data/db
de la racine à vous-même. Ensuite, vous pouvez démarrer mongo Shell simplement par mongo
, pas besoin d'utiliser Sudo mongo
.