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

Отказано соединение MongoDb

Это моя первая попытка использовать MongoDB. У меня работает Mongo:

ps -ef | grep [m]ongo
mongodb  11023  1  0 Jun24 ? 00:00:03 /usr/lib/mongodb/mongod --config /etc/mongodb.conf

И ошибка возникает в результате выполнения

Datastore.save( stuff );  // (pseudo code)

Ошибка:

Jun 27, 2011 3:20:29 PM com.mongodb.DBTCPConnector fetchMaxBsonObjectSize
WARNING: Exception determining maxBSON size using0
java.io.IOException: couldn't connect to [russ-elite-book/127.0.1.1:27017] bc:java.net.ConnectException: Connection refused
    at com.mongodb.DBPort._open(DBPort.java:206)
    at com.mongodb.DBPort.go(DBPort.java:94)
    at com.mongodb.DBPort.go(DBPort.java:75)
    at com.mongodb.DBPort.findOne(DBPort.java:129)
    at com.mongodb.DBPort.runCommand(DBPort.java:138)
    ...

Обратите внимание, что я использую 127.0.0.1:27017 для моего подключения, которое работает с оболочкой Mongo. Кроме того, я получаю страницу администратора в браузере с помощью http://localhost:28017.

Спасибо за любые идеи!

4b9b3361

Ответ 1

(Я думаю, что это немного плохая форма, чтобы ответить на один собственный вопрос, но на самом деле ответ оказывается никем из предложенных. Тем не менее, мое обильное спасибо всем им. Отвечая на вопрос, нужно быть в состоянии предположить это на основе правильно установленного и работающего программного обеспечения. У меня этого не было.)

Я установил MongoDB с помощью программного обеспечения Ubuntu Software Center. Он работал из оболочки и из браузера, как указано в другом месте этого вопроса. Однако он не работал с Java (и от Django тоже).

Проблема, несмотря на то, что она говорила в трассировке стека Java, была просто "отказ в соединении".

Решение состоит в том, чтобы установить его из соответствующих источников в Mongo и не доверять репозиторию Ubuntu.

(Да, это также часто случается с другими продуктами, полученными оттуда, например, Eclipse, но вы знаете, что это такой хороший сервис, которому вы хотите доверять ему.)

Если вы хотите прочитать, как я установил то, что сработал, посмотрите http://www.javahotchocolate.com/tutorials/mongodb.html.

Ответ 2

Я столкнулся с той же проблемой, потому что обновил монго с помощью brew. Чтобы устранить эту проблему. Найдите файл conf (который может не находиться в каталоге bin, откуда вы запускаете свой mongodb)

/usr/local/Cellar/mongodb-2.2.whatever/mongod.conf и закомментируйте свойство bind_ip.

Ответ 3

Скорее всего, драйвер Java не может подключиться к указанному адресу. Убедитесь, что вы можете подключиться к этому адресу 127.0.1.1:27017 с помощью оболочки и запустить "db.isMaster()". Возможно, это проблема 127.0.1.1 vs 127.0.0.1.

Ответ 4

У меня была та же проблема, но мое решение было другим. Я использовал "localhost" в качестве имени хоста и менял его на "127.0.0.1".

Ответ 5

Я столкнулся с той же проблемой, потому что я установил монго с помощью apt-get. Вот как это исправить:

  • Найдите файл mongod.conf. В Ubuntu 14.04 он /etc/mongod.conf
  • Откройте файл mongod.conf и запустите команду bindIp = 127.0.0.1
  • Перезапустить mongod

Ответ 6

Оказывается, что проблема с драйвером Java MongDB.

Существует два решения:

  • Использование версия 2.8 или выше драйвера Java.
  • Отредактируйте файлы конфигурации, и если он содержит строку bind_ip = 127.0.0.1 или bind_ip = localhost, прокомментируйте это.

Употребление скромного пирога...

Как я показал в своем комментарии к собственному ответу Руса Бэйтмана, сначала это показалось проблемой с пакетом Ubuntu. Настоящая причина заключается в том, что в файле конфигурации, который поставляется с ним, определяется значение для bind_ip...

Ответ 7

Похоже, что это проблема безопасности или неверный URL-адрес. Если вы использовали конфигурацию по умолчанию, вы должны иметь доступ к http://yourmachine:28017. Посмотрите, можете ли вы перейти на страницу администратора с этого URL-адреса. Если вы можете перейти к URL-адресу администратора, просто замените номер порта 27017 в своем приложении. Он должен работать.

Ответ 8

Трудно сказать, не видя вашего содержимого .conf. Одна вещь, которую я бы рекомендовал, - запустить оболочку mongo и посмотреть, можете ли вы подключиться, запросить и написать от нее. Это поможет изолировать сервер от проблемы с java-клиентом. Кроме того, это может дать вам другую форму ошибки, которая может быть подсказкой.

Вы устанавливаете --port в свой .conf файл?

Ответ 9

Для меня это было совершенно другое решение. Я использую структуру Spring MVC, и все, что мне нужно было сделать, это подтвердить, что файлы конфигурации XML говорят то же самое в папке /target, а также в нецелевых папках. Как только это было настроено, все сработало. Проблема заключалась в том, что все работало при запуске из STS, но при развертывании у меня была упомянутая ошибка.