Проблемы с подключением MongoDB к Java - PullRequest
7 голосов
/ 09 мая 2011

Я пытаюсь запустить следующий код:

public static void main(String args[]) throws UnknownHostException, MongoException{
        Mongo m = new Mongo( "localhost", 27017 );
        DB db = m.getDB( "test" );


        Set<String> coll = db.getCollectionNames();
    }

, но по какой-то причине у меня возникают проблемы с соединением:

bc: java.net.ConnectException: соединение отклонено: соединиться

РЕДАКТИРОВАТЬ: Н.В.М. Я забыл запустить базу данных в фоновом режиме

1 Ответ

6 голосов
/ 09 мая 2011

Очевидно, убедитесь, что вы можете подключиться к MongoDB через "localhost" порт 27017. Вы должны иметь возможность открыть оболочку MongoDB без аргументов и получить ответ:

» mongo
MongoDB shell version: 1.8.1
connecting to: test
> 

Если вы не можете, ответ должен быть очевидным: MongoDB не работает. Вы должны убедиться, что запускаете процесс сервера MongoDB. В документации MongoDB есть несколько руководств по быстрому запуску , которые должны помочь вам в процессе на выбранной вами платформе.

В противном случае вы не указываете, на какой платформе вы находитесь, но есть проблема с тем, как Java разрешает определенные имена хостов, такие как "localhost" в Mac OS X ... Это на самом деле проблема Java, а не проблема драйвера MongoDB Java Driver ,

Когда запрашивается разрешение «localhost» от имени хоста до InetSocketAddr, Java для Mac обычно возвращает IP-адрес для внешнего интерфейса вашей машины. Поскольку несколько инсталляторов для Mac MongoDB, таких как Homebrew, блокируют прослушиваемый IP-адрес на 127.0.0.1, это может привести к полному сбою подключения к «localhost» на Mac с Java.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...