Ошибка mongorestore: недоступные серверы
Я попытался восстановить mongo из дампа, но не смог:
mongorestore --port 27133 dump
2015-05-07T09:39:11.760+0300 Failed: no reachable servers
Хотя я могу подключиться к нему без каких-либо проблем:
$ mongo --port 27133
MongoDB shell version: 3.0.1
connecting to: 127.0.0.1:27133/test
В файле журнала нет ничего особенного:
2015-05-07T09:37:00.350+0300 I NETWORK [initandlisten] connection accepted from 127.0.0.1:44901 #1 (1 connection now open)
2015-05-07T09:37:13.935+0300 I NETWORK [conn1] end connection 127.0.0.1:44901 (0 connections now open)
2015-05-07T09:39:08.752+0300 I NETWORK [initandlisten] connection accepted from 127.0.0.1:44906 #2 (1 connection now open)
2015-05-07T09:39:11.763+0300 I NETWORK [conn2] end connection 127.0.0.1:44906 (0 connections now open)
2015-05-07T09:39:52.365+0300 I NETWORK [initandlisten] connection accepted from 127.0.0.1:44907 #3 (1 connection now open)
2015-05-07T09:39:55.064+0300 I NETWORK [conn3] end connection 127.0.0.1:44907 (0 connections now open)
2015-05-07T09:40:11.272+0300 I NETWORK [initandlisten] connection accepted from 127.0.0.1:44909 #4 (1 connection now open)
2015-05-07T09:40:14.281+0300 I NETWORK [conn4] end connection 127.0.0.1:44909 (0 connections now open)
Update
Хост 127.0.0.1
не помог
$ mongorestore --host=127.0.0.1 --port=27132 dump
2015-12-16T18:52:33.270+0300 Failed: no reachable servers
Хотя я все еще могу подключиться с помощью команды mongo
:
$ mongo --host=127.0.0.1 --port=27133
MongoDB shell version: 3.2.0
connecting to: 127.0.0.1:27133/test
> ^C
bye
Хост 0.0.0.0
тоже не помог:
$ mongorestore --host=0.0.0.0 --port=27133 dump
У меня есть версия версии MongoDb 3.2:
$ mongorestore --version
mongorestore version: 3.2.0-rc5
git version: 6186100ad0500c122a56f0a0e28ce1227ca4fc88
Ответы
Ответ 1
Проблема возникла из-за того, что --replSet
был включен в конфигурации. Но node еще не был установлен в какой-либо реплике.
После того как я удалил --replSet
из конфигурации, перезапустил сервер mongodb, mongorestore
начал работать без какого-либо параметра --host
.
Ответ 2
попробуйте добавить параметр хоста
mongorestore --host=127.0.0.1 --port=27133 dump
Ответ 3
Вы запускаете mongo в наборе реплик, т.е. mongod --replSet rs0
?
Если да, не забудьте запустить в своей оболочке mongo команду: rs.initiate()
Затем вы можете использовать cmd mongorestore
для восстановления своего db.
Ответ 4
У меня есть MongoDB, установленный через Homebrew, и у меня была эта проблема. Вот симптомы:
Сбой:
mongorestore dump
mongorestore dump --host=localhost
Ошибка, которую я получил: Failed: error connecting to db server: no reachable servers
Они работали (как обходной путь):
mongorestore dump --host=127.0.0.1
mongorestore dump --host=0.0.0.0
Это устранило проблему для меня:
brew update && brew upgrade
Это обновление MongoDB до 3.0.7 и теперь mongorestore dump
работает без флага хоста.
Ответ 5
проверьте конфигурационный файл mongod, если вы включили репликацию, отключите его, если он включен, аутентификация на основе ключа отключит его, в основном отключает любую другую вещь и перезапускает службу mongod, а затем пытается выполнить восстановление mongo.
И BTW, попробуйте привязать ipaddress mongod к вашему адресу компьютера, а если это локальный экземпляр mongod, попробуйте привязать ip-адрес к 0.0.0.0, в файле mongod.conf в bind_ip = "ваш IP-адрес", пусть я знаю, что это делает или нет.
Ответ 6
Мне тоже было сложно с этим вопросом.
mongorestore --host f8cab83e7294 --port 27601 gene_backup_final/gene_backup/s2/ --verbose
2016-12-05T13:48:15.333-0700 Failed: error connecting to db server: no reachable servers
Мне не удалось запустить набор реплик. Вот почему не было доступного сервера
После запуска RS восстановление выполнено.
mongo localhost:27501
rs.initiate()
Ответ 7
Первый запуск mongod
Если вы получите исключение exception in initAndListen: 29 Data directory /data/db not found., terminating
, выполните sudo mkdir -p /data/db
Если вы получите expection exception in initAndListen: 98 Unable to create/open lock file: /data/db/mongod.lock errno:13 Permission denied Is a mongod instance already running?, terminating
, возможно, у вас есть проблема с разрешением. Если это ваш локальный, вы можете запустить sudo chmod 7777 /data/db
, чтобы исправить проблему.
Теперь mongod
должен работать.
Затем запустите mongorestore dump
, где находится ваш файл дампа.
Вам следует восстановить файл дампа.
Ответ 8
В моем случае (с Mongo 3.2.9) сервер был настроен на прослушивание адреса localhost
IPv4 (127.0.0.1
), но mongorestore
пробовал только адрес localhost
IPv6 (::1
).
Использование -h 127.0.0.1
сработало. Однако, это не должно быть необходимым, ИМХО, и это ошибка в mongorestore
. Он должен использовать ту же логику подключения, что и mongo
командной строки mongo
, который работал.
Примечание: наборы реплик не были включены.
Ответ 9
У меня та же проблема. Я попытался запустить mongod, прежде чем восстанавливать свою свалку, и это работает для меня. Надеюсь, что это поможет в этой ситуации.
Ответ 10
В моем случае я определяю порт два раза.
магазин --noIndexRestore - хост XXXX: 27017 -d XYZ --port 27017 имя
Решите в моем случае,
магазин --noIndexRestore - хост XXXX -d XYZ --port 27017 имя
Ответ 11
Если вы используете размещенный сервис (например, MongoDB Atlas), убедитесь, что вы настроили белый список IP-адресов, чтобы он не блокировал ваш IP-адрес. Вы можете установить его на 0.0.0.0/0
чтобы 0.0.0.0/0
в белый список все IP-адреса, но это плохая идея с точки зрения безопасности, поэтому его следует использовать только как временную меру.