Перейти к основному содержимому

Проверка подключения к MongoDB

· 3 мин. чтения

1. Обзор

В этом уроке мы научимся проверять соединение с MongoDB .

Важно отметить, что для подключения к одному экземпляру MongoDB нам нужно указать URI экземпляра MongoDB.

2. Проверка соединения с помощью Mongo Shell

В этом разделе мы подключимся к серверу MongoDB с помощью команды оболочки mongo. Мы рассмотрим разные случаи подключения к MongoDB.

2.1. Проверка подключения к порту по умолчанию

По умолчанию MongoDB работает на порту 27017, но мы также можем запустить его на другом порту. Мы можем подключиться к серверу MongoDB с помощью простой команды mongo:

$ mongo
MongoDB shell version v4.4.2
connecting to: mongodb://localhost:27017/?compressors=disabled&gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("b7f80a0c-c7b9-4aea-b34c-605b85e601dd") }
MongoDB server version: 4.0.1-rc0-2-g54f1582fc6

В приведенной выше команде по умолчанию MongoDB использует порт 27017 . Если сервер MongoDB не работает, мы получаем следующую ошибку:

$ mongo --host localhost --port 27017 admin
MongoDB shell version v4.4.2
connecting to: mongodb://localhost:27017/admin?compressors=disabled&gssapiServiceName=mongodb
Error: couldn't connect to server localhost:27017, connection attempt failed:
SocketException: Error connecting to localhost:27017 :: caused by :: Connection refused :
connect@src/mongo/shell/mongo.js:374:17
@(connect):2:6
exception: connect failed
exiting with code 1

В данном случае мы получили ошибку, потому что не смогли подключиться к серверу.

2.2. Проверка подключения к защищенной базе данных MongoDB

MongoDB можно защитить с помощью аутентификации. В этом случае нам нужно передать имя пользователя и пароль в команде:

$ mongo mongodb://foreach:foreach@localhost:27017

Здесь мы использовали имя пользователя «foreach» и пароль «foreach» для подключения к MongoDB, работающей на локальном хосте.

2.3. Проверка соединения на пользовательском порту

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

$ mongo mongodb://localhost:27001

Здесь, в оболочке mongo, мы также можем проверить активные в данный момент подключения к серверу базы данных.

var status = db.serverStatus();
status.connections
{
"current" : 21,
"available" : 15979
}

serverStatus возвращает документ, который дает обзор текущего состояния процесса базы данных. Регулярный запуск команды serverStatus будет собирать статистику об экземпляре MongoDB.

3. Проверка соединения с использованием кода драйвера Java

Пока что мы научились проверять соединение с MongoDB с помощью шелла. Теперь давайте рассмотрим то же самое, используя код драйвера Java:

MongoClientOptions.Builder builder = MongoClientOptions.builder();
// builder settings
ServerAddress ServerAddress = new ServerAddress("localhost", 27017);
MongoClient mongoClient = new MongoClient(ServerAddress, builder.build());

try {
System.out.println("MongoDB Server is Up:- "+mongoClient.getAddress());
System.out.println(mongoClient.getConnectPoint());
System.out.println(db.getStats());
} catch (Exception e) {
System.out.println("MongoDB Server is Down");
} finally{
mongoClient.close();
}

В приведенном выше коде мы сначала создали построитель MongoClientOption для настройки конфигураций подключения MongoClient , а затем создали подключение MongoClient , используя адрес сервера. Предположим, что сервер MongoDB работает на порту 27017 локального хоста. В противном случае MongoClient выдаст ошибку.

4. Вывод

В этом руководстве мы научились проверять соединение сервера MongoDB с различными случаями в реальном времени.

Сначала мы проверили соединение с помощью команды mongo по умолчанию, затем использовали аутентифицированную команду, а также подключились к серверу MongoDB, работающему на настроенном порту. Затем мы проверили соединение как для оболочки MongoDB, так и для кода драйвера Java.

Пример всех кейсов можно найти на GitHub .