Подтвердить что ты не робот

Mongodb Не удалось: ошибка подключения к серверу db: нет доступных серверов

Я установил mongodb в сервер Ubuntu14.04

Я не смог подключиться к mongodb через "mongoimport", "mongodump", "mongostat" и т.д. Он всегда показывает "недоступный сервер"

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

Как-то я смог подключиться к оболочке mongo

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

Сначала я сомневаюсь, что это вызвано моими iptables, поэтому я очищаю все правила iptables и создаю правила для ВСЕ, принимаю, но он все тот же

 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

Я просматриваю stackOverflow и google, а кто-то сказал отмечен bind_ip или установить bind_ip в 0.0.0.0, я пробовал все, но все еще не удалось.

Ниже мой конфигуратор mangodb, может ли кто-нибудь помочь мне проверить? Спасибо за вашу помощь.

[email protected]:~$ 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
4b9b3361

Ответ 1

Временное обходное решение заключается в добавлении параметра host к вашему вызову mongoimport, позволяя mongo знать, что хост - это ваша собственная машина (127.0.0.1):

mongoimport --host=127.0.0.1

Полная команда в вашем случае:

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

(Источник: ranjeetcao @mongorestore Не удалось: нет доступных серверов)


Update:

Обновление для Mongo >= 3.0.7 должно решить проблему

(Источник: Colin Marshall @mongorestore Failed: нет доступных серверов)


Обновление 2:

Кажется, что для некоторых пользователей по-прежнему существует ошибка .

Здесь также есть открытая проблема JIRA здесь.

(Источник: Джеймс Чиен @этот вопрос)


Обновление 3:

В некоторых случаях это может быть вызвано тем, что Mongo работает как ReplicaSet. Чтобы решить эту проблему, насколько я видел, можно либо отключить функцию ReplicaSet, либо reset. См:

(Источник: Максим Ефремов @mongorestore Failed: нет доступных серверов)

Ответ 2

Я нахожу ответ по этим ссылкам https://jira.mongodb.org/browse/TOOLS-620 Кажется, это ошибки mongodb, которые еще не решены. Не уверен, что кто-нибудь знает, исправили ли последние инструменты проблему?

Кстати, я удаляю mongodb-tools 3.x и переустанавливаю на 2.6.0, которые разрешили проблему.

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

Ответ 3

Вам необходимо указать опцию хоста, попробуйте следующую команду:

mongoimport --host=127.0.0.1 -d dbName -c collectionName --file output.txt

Ответ 4

Чтобы указать параметры хоста и порта

mongoimport --host X.X.X.X --port 27017 --db dbName --collection collectionName --file fileName.json --jsonArray

Ответ 5

Если вы установили mongodb через homebrew, вы можете просто запустить mongodb через

brew services start mongodb

Затем получите доступ к оболочке с помощью

mongo

Вы можете закрыть свою базу данных с помощью

brew services stop mongodb

Дополнительные параметры

brew info mongodb

Ответ 6

mongorestore --db <thedb> --host=127.0.0.1 --port=<port> --drop path/db