web-dev-qa-db-fra.com

Impossible de se connecter à mongodb en utilisant l'ip de la machine

Installé Mongo à l'aide de homebrew. Si je tape mongo sur Shell, il se connecte à test. Mais quand je tape le ip address de la machine locale au lieu de 127.0.0.1

mongo --Host 192.168.1.100 --verbose

Ça me donne un message d'erreur 

MongoDB Shell version: 2.4.6
Fri Aug 23 15:18:27.552 versionArrayTest passed
connecting to: 192.168.1.100:27017/test
Fri Aug 23 15:18:27.579 creating new connection to:192.168.1.100:27017 
Fri Aug 23 15:18:27.579 BackgroundJob starting: ConnectBG
Fri Aug 23 15:18:27.580 Error: couldn't connect to server 192.168.1.100:27017 at src/mongo/Shell/mongo.js:147
Fri Aug 23 15:18:27.580 User Assertion: 12513:connect failed

J'ai essayé de modifier le mongo.conf en commentant bind_ip ou en modifiant l'adresse IP de 127.0.0.1 en 0.0.0.0, mais sans succès. Cela devrait être simple, mais je n'en ai aucune idée maintenant. Utilisation de mac.

Merci

Mise à jour: à la demande. Cela fonctionne après avoir apporté les modifications que vous avez suggérées.

ifconfig sortie 

lo0: flags=8049<UP,LOOPBACK,RUNNING,MULTICAST> mtu 16384
   options=3<RXCSUM,TXCSUM>
   inet6 fe80::1%lo0 prefixlen 64 scopeid 0x1 
   inet 127.0.0.1 netmask 0xff000000 
   inet6 ::1 prefixlen 128 
gif0: flags=8010<POINTOPOINT,MULTICAST> mtu 1280
stf0: flags=0<> mtu 1280
en0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   options=b<RXCSUM,TXCSUM,VLAN_HWTAGGING>
   ether XX:XX:XX:
   media: autoselect (none)
   status: inactive
en1: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 1500
   ether XX:XX:XX:XX:01 
   inet6 XXXX:XXXX:XXXX: %en1 prefixlen 64 scopeid 0x5 
   inet 192.168.1.100 netmask 0xffffff00 broadcast 192.168.1.255
   media: autoselect
   status: active
 p2p0: flags=8843<UP,BROADCAST,RUNNING,SIMPLEX,MULTICAST> mtu 2304
   ether XX:XX:XX:XX:XX
   media: autoselect
   status: inactive
 fw0: flags=8863<UP,BROADCAST,SMART,RUNNING,SIMPLEX,MULTICAST> mtu 4078
   lladdr XX:XX:XX:XX
   media: autoselect <full-duplex>
   status: inactive

Sortie lors de l'exécution de la commande mongo --Host 192.168.1.100 --verbose

MongoDB Shell version: 2.4.5
Fri Aug 23 16:42:09.806 versionArrayTest passed
connecting to: 192.168.1.100:27017/test
Fri Aug 23 16:42:09.837 creating new connection to:192.168.1.100:27017
Fri Aug 23 16:42:09.837 BackgroundJob starting: ConnectBG
Fri Aug 23 16:42:10.129 connected connection!
Server has startup warnings: 
Fri Aug 23 16:41:59.025 [initandlisten] 
Fri Aug 23 16:41:59.025 [initandlisten] ** WARNING: soft rlimits too low. Number of files is 256, should be at least 1000

Fichier mongod.conf

# Store data in /usr/local/var/mongodb instead of the default /data/db
dbpath = /usr/local/var/mongodb

# Append logs to /usr/local/var/log/mongodb/mongo.log
logpath = /usr/local/var/log/mongodb/mongo.log
logappend = true

# Only accept local connections
bind_ip = 0.0.0.0`
9
java_dude

Je viens de tester cela sur mon Mac avec Homebrew, fonctionne bien si vous changez l'adresse de liaison. Je suppose que vous n'avez probablement pas correctement configuré la configuration de bind?

Pour que nous ayons toutes les informations, pouvez-vous coller le résultat de ifconfig s'il vous plaît?

Par défaut, MongoDB devrait écouter toutes les interfaces. Vous ne devriez pas avoir besoin de modifier la configuration. Cependant, la configuration de Homebrew semble remplacer ceci (/usr/local/etc/mongod.conf):

# Only accept local connections
bind_ip = 127.0.0.1

Veuillez tuer MongoDB et lancez ceci (notez le -v):

$ mongod --bind_ip 0.0.0.0 -v
warning: bind_ip of 0.0.0.0 is unnecessary; listens on all ips by default
all output going to: /usr/local/var/log/mongodb/mongo.log

Il suffit de coller votre sortie pour cela s'il vous plaît?

Et puis juste essayer:

$ mongo --Host 192.168.43.2 --verbose
MongoDB Shell version: 2.4.6
Sat Aug 24 09:07:14.556 versionArrayTest passed
connecting to: 192.168.43.2:27017/test
Sat Aug 24 09:07:14.657 creating new connection to:192.168.43.2:27017
Sat Aug 24 09:07:14.657 BackgroundJob starting: ConnectBG
Sat Aug 24 09:07:14.657 connected connection!
Server has startup warnings: 
Sat Aug 24 09:06:44.360 [initandlisten] 
Sat Aug 24 09:06:44.360 [initandlisten] ** WARNING: soft rlimits too low. Number of files     is 256, should be at least 1000
> 

Évidemment, remplacez-le par votre adresse IP. Dites-nous comment ça se passe.

16
victorhooi

En fait, si vous voulez accéder à l'interface de repos à partir de n'importe quelle adresse IP, vous n'avez pas besoin de définir bind_ip sur 0.0.0.0 dans le fichier mongod.conf. Vous devez uniquement commenter ou supprimer l'élément de configuration, 

#bind_ip=127.0.0.1

Et puis, redémarrez votre service, vous pouvez constater que vous pouvez accéder au service de repos à partir du port 28017 à partir de votre ordinateur.

2
Zhu Zhaohua

Remarque: la configuration ci-dessous concerne Windows 10 et MongoDB 4.0

Il y a deux façons de configurer cela.

  1. Utiliser les commandes Shell.
  2. Ou par mongod.cfg.

Utilisation des commandes shell

Commencez par ouvrir la cmd en tant que administrator et passez à --YourPath--\MongoDB\Server\4.0\bin

  1. Si vous exécutez déjà le service MongoDB, exécutez cette commande ou passez à l'étape suivante .mongod --remove

  2. Définissez ensuite le chemin d'accès au dossier de données, au fichier journal et à la liaison IP à l'aide de la commande ci-dessous

    mongod --dbpath "C:\Program Files\MongoDB\Server\4.0\data" --logpath "C:\Program Files\MongoDB\Server\4.0\log\mongod.log" --bind_ip "0.0.0.0" --install --serviceName "MongoDB"

caution: Cette configuration ip permet d'accéder à votre base de données sur l'ensemble du réseau.

  1. Maintenant, allez à services.msc et recherchez la MongoDB, puis Clic droit -> Démarrer le service. 

À travers mongod.cfg

MongoDB a une très bonne documentation pour Configuration here.

Il suffit de changer le bindIp: 127.0.0.1 en bindIp: 0.0.0.0. Puis redémarrez le service en utilisant le point n ° 3 de la rubrique ci-dessus.

0
satheesh