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:
(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