Impossible de se connecter à mongodb errno: 61 Connexion refusée

91

J'ai récemment installé mongodb-2.6.0 avec Homebrew . Après avoir installé avec succès, j'ai essayé de me connecter à l'aide de la mongocommande. Je reçois les erreurs suivantes qui ne me permettent pas de me connecter:

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

exception: connect failed
Michael
la source
1
Êtes-vous sûr que le service mongod fonctionne même? Quelles options de configuration avez-vous sur votre fichier de configuration?
ffflabs
Avez-vous utilisé sudo apt-get pour installer? J'ai lu des informations sur les personnes rencontrant des problèmes avec cela ... essayez plutôt de supprimer et de télécharger via le site MongoDB .
Hassan
J'ai installé avec homebrew, les instructions sur le site officiel n'indiquaient pas que je devais configurer un fichier .config. Je l'ai simplement téléchargé et j'ai exécuté la commande «mangouste» qui a entraîné les erreurs ci-dessus.
Michael
Vérifiez vos journaux, généralement /var/logs/mongodbsi je me souviens bien.
AlbertEngelB
J'ai réinstallé via le téléchargement et décompressé le fichier. J'utilise «mongo» et je reçois toujours les mêmes erreurs.
Michael

Réponses:

277

Cela peut arriver lorsque le service mongodb ne fonctionne pas sur le mac. Pour le démarrer, j'ai essayé

brew services start mongodb

et cela a fonctionné.

Edit: Selon la discussion sur ce PR sur homebrew: https://github.com/Homebrew/homebrew/issues/30628

brew servicesest obsolète, j'ai regardé autour de SO et j'ai trouvé que ces réponses répondent maintenant à la question: Quelle est la bonne façon de démarrer un service mongod sur Linux / OS X?

Hrishi
la source
8
J'obtiens
7
'brew services' n'est plus pris en charge: github.com/Homebrew/homebrew/issues/32006
Vitaly
7
J'ai essayé sudo mongod au lieu de mongo et ça a commencé! Pour accéder au shell mongo, j'ai ouvert une nouvelle fenêtre shell et j'ai écrit mongo et cela a fonctionné !! Vous pouvez trouver une trace d'erreur complète avec une solution sur ce blog
Ali Raza Bhayani
1
Les services de brassage ne sont plus pris en charge dans mon Mac OS X Yosemite. sudo mongoda commencé le mongodb, puis la commande mongo a fonctionné. Merci @Ali Raza Bhayani.
psun
2
Merci pour cette solution !! La commande de service de brassage a fonctionné pour moi dans mon Mac OS X Sierra.
Jcc.Sanabria
32

J'ai rencontré exactement le même problème et voici un processus clair étape par étape pour éviter cette erreur.

É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 mongocommande sans aucune erreur. J'ai également détaillé la trace d'erreur et sa solution sur ce blog .

Ali Raza Bhayani
la source
1
Ceci est également référencé sur la page officielle de MongoDB: docs.mongodb.org/v2.2/tutorial/install-mongodb-on-os-x/…
Paulo Oliveira
cela a fonctionné pour moi une fois ... mais ensuite il est tombé: / Cela semble avoir fait l'affaire: stackoverflow.com/a/22623543/1177832
danwild
C'est un bon moyen de gagner la bataille et de perdre la guerre. N'exécutez pas de services en tant que root.
Miles Erickson
22

Pour résoudre votre problème, vous devez suivre les instructions qui vous sont ensuite données par brew après avoir utilisé "brew install mongodb".

Pour que launchd démarre mongodb à la connexion:

ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Ensuite, pour charger mongodb maintenant:

launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Ou, si vous ne voulez / n'avez pas besoin de launchctl, vous pouvez simplement exécuter:

mongod --config /usr/local/etc/mongod.conf

Vous pourrez peut-être exécuter cette dernière commande, mais cela n'a pas fonctionné pour moi et j'avais besoin d'exécuter la deuxième commande. Pour me sauver dans le futur. Je viens d'exécuter la première commande aussi. J'espère que cela pourra aider!

EDIT La méthode d'utilisation de Hrishi brew services mongodb starta bien fonctionné pour moi. Je pense qu'ils devraient inclure cela dans la documentation mongo.

jh3y
la source
J'ai utilisé la dernière commande et visité localhost / 27017 dans mon navigateur, l'écran disait: `` Il semble que vous essayez d'accéder à MongoDB via HTTP sur le port du pilote natif. '' Cela ne semble pas être correct ...
Michael
Mongo fonctionne maintenant, non? Comme dans vous pouvez taper mongo dans shell et vous ne recevez plus le message de connexion refusée? Vous n'accéderez pas à mongo à partir du navigateur, vous voudrez travailler avec lui à partir du cli.
jh3y
Non, aucune commande dans le shell ne s'exécutera après que j'aie entré 'mongod --config /usr/local/etc/mongod.conf' C'est une simple invite vide. J'ai recalé sans utiliser homebrew et téléchargé le zip du site Web, déplacé les exécutables vers / usr / local / bin, mais maintenant je reçois toujours les mêmes messages d'erreur.
Michael
ouais la dernière commande vient de m'attendre aussi. Je viens de lancer les deux premiers et tu devrais être bon. Quand il se bloque, il suffit de frapper ctrl + cet d'essayer mongoaprès cela.
jh3y
Hmm ... ça ne marche toujours pas. Je publierai sur les forums de mongoDB. Thx pour l'aide.
Michael
16

Dans un autre onglet, vous pouvez démarrer le shell mongo avec

Mongod

Revenez ensuite à l'onglet précédent et réessayez. Si vous rencontrez des difficultés pour configurer votre mongoshell, consultez ce lien sur le shell mongo: http://docs.mongodb.org/manual/tutorial/manage-mongodb-processes/ ou ce lien sur l'installation de mongodb: http: / /docs.mongodb.org/manual/tutorial/install-mongodb-on-os-x/

Eric Hou
la source
Cela l'a fait pour moi. J'ai totalement négligé de démarrer le service mongod avant d'essayer de lancer mongo. Merci!
Matt Welander
7

J'avais le même problème lors de l'appel à mongodpartir de la ligne de commande.

J'ai résolu cela en appelant à la place sudo mongod.

Bogdan T.
la source
N'exécutez pas de services en tant que root.
Miles Erickson
4

J'ai eu la même erreur mais une cause première différente. Je pensais que je publierais la solution ici au cas où quelqu'un d'autre rencontrerait le problème. J'ai eu cette erreur après l'arrêt incorrect de mon Mac pendant que j'exécutais mongorestore -d foo dump/foo/.

tl; dr : je fixe le problème en supprimant le endommagé foo.nsfichier avec foo.0, foo.1... à partir de mon dossier de données /usr/local/var/mongodb/. Ensuite, j'ai redémarré le serveur mongo avec brew services restart mongodbet je suis revenu à la normale.

Détails : J'ai continué à recevoir l'erreur même après avoir essayé de démarrer ou de redémarrer le service mongodb via brew ou launchctl. Finalement, j'ai couru mongod --dbpath /usr/local/var/mongodb et j'ai vu que le service ne démarrait pas réellement, et la séquence de démarrage comprenait l'erreur suivante: [initandlisten] bad .ns file: /usr/local/var/mongodb/foo.ns [initandlisten] User Assertion: 10079:bad .ns file length, cannot open database je me suis débarrassé du mauvais .nsfichier et du reste des fichiers de données, et la prochaine fois que j'ai démarré le service, j'étais prêt à partir .

Nick Benes
la source
1
Mon seul regret est que je n'ai qu'un seul vote favorable à donner: toutes les autres réponses ignorent le fait que les configurations de brassage par défaut placent dbs dans / usr / local / var / mongodb!
premiumFrye
1
Annnddd Mongo vient de planter à nouveau, alors maintenant je devais recommencer ce processus. Heureusement, j'ai voté pour votre réponse afin que je puisse la retrouver: D
premiumFrye
3

pour moi sur osx, j'ai dû tuer l'ancienne instance en cours d'exécution, puis le redémarrage a fonctionné.

$>ps -aef | grep mongo
502  8047     1   0 11:52AM ??         0:00.23 /usr/local/opt/mongodb/bin/mongod --config /usr/local/etc/mongod.conf 

$>sudo kill 8047

$>sudo mongod
ranjeetcao
la source
1

J'ai eu cette erreur après avoir mis à niveau vers mongo 3.6 avec homebrew.

Le journal /usr/local/var/log/mongodb/mongo.logcontenait le message shutting down with code:62. Ce code d'erreur signifie que la base de données existante est trop ancienne pour fonctionner avec la version actuelle de mongo.

J'ai trouvé 2 solutions dans une autre question SO :

J'ai choisi de mettre à niveau. Dans mon cas, cela signifiait que je devais revenir à la version 3.4, exécuter une commande dans la console mongo, puis mettre à niveau à nouveau. Mongo vous oblige à mettre à niveau une version majeure à la fois, donc en fonction de votre ancienneté, il pourrait y avoir des étapes supplémentaires. Les documents vous guideront.

Les commandes brew switch* et brew services restartrendaient l'échange entre les versions relativement simple.

Chad von Nau
la source
0

Si vous avez déjà installé MongoDB, essayez d'abord d'exécuter mongod en tant qu'utilisateur sudo, j'étais confronté au problème car je n'utilisais pas mongod en tant que superutilisateur.

J'ai collé l'o / p pour les deux commandes ( mongod et sudo mongod ) tout en bas, vous pouvez vérifier cela aussi mais

Essayez d'abord ceci

sudo mongod

pas ça

mongod

J'avais installé MongoDB sur mon MAC OS X Sierra 10.12.6 en exécutant la commande suivante dans l'ordre.

brew update
brew install mongodb --devel
brew services start mongodb

puis créé un répertoire dans lequel le processus mongod écrira les données, ceci est facultatif car le processus mongod les prend par défaut, voir ce guide utile à https://docs.mongodb.com/manual/tutorial/install-mongodb-on-os -X/

sudo mkdir -p /data/db

Finalement commencé le processus mongod comme suit

sudo mongod

Oputput des commandes mongod (échoué) et sudo mongod (réussi) sur mon terminal.

MacBook-Pro-2:appscheck admin$ mongod
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2698 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:06.166+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:06.166+0530 I STORAGE  [initandlisten] exception in initAndListen: 20 Attempted to create a lock file on a read-only directory: /data/db, terminating
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to close listening sockets...
2017-12-10T08:12:06.166+0530 I NETWORK  [initandlisten] shutdown: going to flush diaglog...
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] now exiting
2017-12-10T08:12:06.167+0530 I CONTROL  [initandlisten] shutting down with code:100


MacBook-Pro-2:appscheck admin$ sudo mongod
Password:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] MongoDB starting : pid=2700 port=27017 dbpath=/data/db 64-bit host=MacBook-Pro-2.local
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] db version v3.4.10
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] git version: 078f28920cb24de0dd479b5ea6c66c644f6326e9
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] OpenSSL version: OpenSSL 1.0.2n  7 Dec 2017
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] allocator: system
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] modules: none
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] build environment:
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     distarch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten]     target_arch: x86_64
2017-12-10T08:12:14.084+0530 I CONTROL  [initandlisten] options: {}
2017-12-10T08:12:14.084+0530 I STORAGE  [initandlisten] wiredtiger_open config: create,cache_size=7680M,session_max=20000,eviction=(threads_min=4,threads_max=4),config_base=false,statistics=(fast),log=(enabled=true,archive=true,path=journal,compressor=snappy),file_manager=(close_idle_time=100000),checkpoint=(wait=60,log_size=2GB),statistics_log=(wait=0),
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
2017-12-10T08:12:14.560+0530 I FTDC     [initandlisten] Initializing full-time diagnostic data capture with directory '/data/db/diagnostic.data'
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten] build index on: admin.system.version properties: { v: 2, key: { version: 1 }, name: "incompatible_with_version_32", ns: "admin.system.version" }
2017-12-10T08:12:14.707+0530 I INDEX    [initandlisten]      building index using bulk method; build may temporarily use up to 500 megabytes of RAM
2017-12-10T08:12:14.719+0530 I INDEX    [initandlisten] build index done.  scanned 0 total records. 0 secs
2017-12-10T08:12:14.720+0530 I COMMAND  [initandlisten] setting featureCompatibilityVersion to 3.4
2017-12-10T08:12:14.720+0530 I NETWORK  [thread1] waiting for connections on port 27017

Ensuite, j'ai ouvert un nouveau terminal pour commencer à interroger MongoDB , cela a fonctionné.

MacBook-Pro-2:appscheck admin$ mongo
MongoDB shell version v3.4.10
connecting to: mongodb://127.0.0.1:27017
MongoDB server version: 3.4.10
Welcome to the MongoDB shell.
For interactive help, type "help".
For more comprehensive documentation, see
    http://docs.mongodb.org/
Questions? Try the support group
    http://groups.google.com/group/mongodb-user
Server has startup warnings: 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: Access control is not enabled for the database.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] **          Read and write access to data and configuration is unrestricted.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: You are running this process as the root user, which is not recommended.
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] 
2017-12-10T08:12:14.472+0530 I CONTROL  [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000
> show dbs;
admin  0.000GB
local  0.000GB
> use practice
switched to db practice
>

C'est tout.

hygull
la source
0

J'ai eu le même problème et en regardant dans le fichier journal, j'ai vu ceci:

{2019-03-09T11:57:32.136-0500 I STORAGE  [initandlisten] 
exception in initAndListen: NonExistentPath: 
Data directory /usr/local/var/mongodb not found., terminating}

J'ai donc créé le répertoire et /usr/local/var/mongodb émis la commande de redémarrage des services de brassage mongodb J'ai pu ouvrir la console mongo.

Jonathan Wagner
la source
-1

Je suppose que vous n'avez pas de base de données en cours d'exécution lorsque vous essayez d'accéder aux tests via la commande "mongo".

Exécutez d'abord cette commande dans le terminal:

mongod 

Ensuite, ouvrez une autre fenêtre de terminal et exécutez:

Mongo

Tout devrait fonctionner maintenant.

Ctpelnar1988
la source
-1

Mon erreur similaire est résolue en supprimant le fichier "sudo rm /data/db/mongod.lock" en essayant d'exécuter mongod. Maintenant, vous pouvez exécuter mongod puis mongo.

Rishabh Mehta
la source