español - mongodb Falló: error al conectarse al servidor db: no hay servidores accesibles
mongodb español (6)
Comando completo:
mongoimport --host=127.0.0.1 -d testdb -c testc --file test.txt
Instalé mongodb en el servidor Ubuntu14.04
No pude conectarme a mongodb a través de "mongoimport", "mongodump", "mongostat", etc. Siempre muestra "sin servidor accesible"
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
De alguna manera, pude conectarme con Mongo Shell
mongo --port 27017
MongoDB shell version: 3.0.6
connecting to: 127.0.0.1:27017/test
Al principio, dudo si es causado por mis iptables, por lo que elimino todas las reglas de iptables y creo reglas para TODAS las aceptadas, pero aún así
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
Busco en el stackOverflow y en google y alguien dijo que marcó bind_ip o configuró bind_ip en 0.0.0.0, probé todo pero fallé.
A continuación se muestra mi configuración de mangodb, ¿alguien podría ayudarme a verificar? Gracias por tu ayuda
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,
# e.g., 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 = <size>
# 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
Encuentro la respuesta en estos enlaces here Parece que es un error de herramientas mongodb que aún no se ha resuelto. ¿No está seguro si alguien sabe si las últimas herramientas han solucionado el problema?
Por cierto, desinstalo mongodb-tools 3.xy reinstalo a 2.6.0 que resolvió el problema
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
Para proporcionar las opciones host y puerto
mongoimport --host X.X.X.X --port 27017 --db dbName --collection collectionName --file fileName.json --jsonArray
Si ha instalado mongodb a través de homebrew, simplemente puede iniciar mongodb a través de
brew services start mongodb
Luego acceda al shell por
mongo
Puedes apagar tu DB por
brew services stop mongodb
Para más opciones
brew info mongodb
Una solución temporal es agregar el
mongoimport
host
a su llamada
mongoimport
, para que Mongo sepa que el host es su propia máquina (
127.0.0.1
):
mongoimport --host=127.0.0.1
El comando completo en su caso es entonces:
mongoimport --host=127.0.0.1 /
--db test --collection restaurants --drop --file dataset.json
(Fuente: ranjeetcao @ mongorestore Falló: no hay servidores accesibles )
Actualizar:
Actualizar a Mongo> = 3.0.7 debería resolver el problema
(Fuente: Colin Marshall @ mongorestore Falló: no hay servidores accesibles )
Actualización 2:
Parece que el error sigue ocurriendo para algunos usuarios .
También hay un problema abierto de JIRA here .
(Fuente: James Chien @ este hilo de preguntas )
Actualización 3:
En algunos casos, esto puede ser causado por Mongo ejecutándose como un ReplicaSet. Para resolver esto, por lo que he visto, uno puede deshabilitar la funcionalidad ReplicaSet o restablecerla. Ver:
- Cómo restablecer la configuración del conjunto de réplicas MongoDB
- Cómo convertir un conjunto de réplicas MongoDB en un servidor independiente
(Fuente: Maxim Yefremov @ mongorestore Falló: no hay servidores accesibles )
mongorestore --db <thedb> --host=127.0.0.1 --port=<port> --drop path/db