mongodb Failed: erreur de connexion au serveur de firebase database: pas de serveurs accessibles

J’ai installé mongodb sur le serveur Ubuntu14.04

Je n’ai pas pu me connecter à mongodb via “mongoimport”, “mongodump”, “mongostat”, etc.

mongoimport --db test --collection restaurants --drop --file dataset.json 2015-08-25T13:08:29.802+0800 [........................] test.restaurants 0.0 B/11.3 MB (0.0%) 2015-08-25T13:08:30.306+0800 Failed: error connecting to db server: no reachable servers 2015-08-25T13:08:30.306+0800 imported 0 documents 

D’une certaine manière, j’ai pu me connecter avec mongo shell

 mongo --port 27017 MongoDB shell version: 3.0.6 connecting to: 127.0.0.1:27017/test 

Au début, je doute que cela soit causé par mes iptables, alors je viderai toutes les règles d’iptables et créerai des règles pour TOUTES les accepter, mais cela rest le même

  sudo iptables -S -P INPUT ACCEPT -P FORWARD ACCEPT -P OUTPUT ACCEPT -A INPUT -j ACCEPT -A INPUT -i lo -j ACCEPT -A FORWARD -j ACCEPT -A OUTPUT -j ACCEPT -A OUTPUT -o lo -j ACCEPT 

Je recherche le stackOverflow et google et quelqu’un a dit marqué avec bind_ip ou défini bind_ip à 0.0.0.0, j’ai tout essayé mais j’ai quand même échoué.

Vous trouverez ci-dessous ma configuration mangodb. Quelqu’un pourrait-il m’aider à vérifier? Merci de votre aide

 james@localhost:~$ cat /etc/mongod.conf # mongod.conf # Where to store the data. # Note: if you run mongodb as a non-root user (recommended) you may # need to create and set permissions for this directory manually, # eg, if the parent directory isn't mutable by the mongodb user. dbpath=/var/lib/mongodb #where to log logpath=/var/log/mongodb/mongod.log logappend=true port = 27017 # Listen to local interface only. Comment out to listen on all interfaces. #bind_ip = 127.0.0.1 # Disables write-ahead journaling # nojournal = true # Enables periodic logging of CPU utilization and I/O wait #cpu = true # Turn on/off security. Off is currently the default #noauth = true #auth = true # Verbose logging output. verbose = true # Inspect all client data for validity on receipt (useful for # developing drivers) #objcheck = true # Enable db quota management #quota = true # Set oplogging level where n is # 0=off (default) # 1=W # 2=R # 3=both # 7=W+some reads #diaglog = 0 # Ignore query hints #nohints = true # Enable the HTTP interface (Defaults to port 28017). #httpinterface = true # Turns off server-side scripting. This will result in greatly limited # functionality #noscripting = true # Turns off table scans. Any query that would do a table scan fails. #notablescan = true # Disable data file preallocation. #noprealloc = true # Specify .ns file size for new databases. # nssize =  # Replication Options # in replicated mongo databases, specify the replica set name here #replSet=setname # maximum size in megabytes for replication operation log #oplogSize=1024 # path to a key file storing authentication info for connections # between replica set members #keyFile=/path/to/keyfile 

Une solution temporaire consiste à append le mongoimport host à votre appel mongoimport , en mongoimport mongo que l’hôte est votre propre machine ( 127.0.0.1 ):

 mongoimport --host=127.0.0.1 

La commande complète dans votre cas est alors:

 mongoimport --host=127.0.0.1 \ --db test --collection restaurants --drop --file dataset.json 

(Source: ranjeetcao @ mongorestore Échec: pas de serveurs accessibles )


Mettre à jour:

Mettre à jour vers Mongo> = 3.0.7 devrait résoudre le problème

(Source: Colin Marshall @ mongorestore Échec: pas de serveurs accessibles )


Mise à jour 2:

Il semble que le Bug se produise encore pour certains utilisateurs .

Il y a aussi un problème JIRA ouvert ici .

(Source: James Chien @ ce fil de question )


Mise à jour 3:

Dans certains cas, Mongo peut être exécuté en tant que ReplicaSet. Pour résoudre ce problème, à ma connaissance, il est possible de désactiver la fonctionnalité ReplicaSet ou de la réinitialiser. Voir:

  • Comment réinitialiser les parameters du jeu de répliques MongoDB
  • Comment convertir un jeu de répliques MongoDB en serveur autonome

(Source: Maxim Yefremov @ mongorestore Échec: pas de serveurs accessibles )

Je trouve la réponse par ces liens https://jira.mongodb.org/browse/TOOLS-620 Il semble que ce soit un bogue d’outils mongodb qui ne soit pas encore résolu. Vous ne savez pas si quelqu’un sait si les derniers outils ont résolu le problème?

BTW, je désinstaller le mongodb-tools 3.x et réinstaller 2.6.0 qui a résolu le problème

 sudo apt-get purge mongodb-org-tools echo 'deb http://downloads-distro.mongodb.org/repo/ubuntu-upstart dist 10gen' | sudo tee /etc/apt/sources.list.d/mongodb.list sudo apt-get update sudo apt-get install -y mongodb-org-tools=2.6.0 mongoimport --db test --collection restaurants --drop --file dataset.json connected to: 127.0.0.1 2015-08-25T15:19:59.494+0800 dropping: test.restaurants 2015-08-25T15:20:00.089+0800 check 9 25359 2015-08-25T15:20:00.089+0800 imported 25359 objects 

Commande complète:

 mongoimport --host=127.0.0.1 -d testdb -c testc --file test.txt 

Si vous avez installé mongodb via homebrew, vous pouvez simplement lancer mongodb via

 brew services start mongodb 

Accédez ensuite au shell par

 mongo 

Vous pouvez fermer votre firebase database par

 brew services stop mongodb 

Pour plus d’options

 brew info mongodb 
 mongorestore --db  --host=127.0.0.1 --port= --drop path/db