DevOps

Как установить MongoDB на Ubuntu

Сегодня я расскажу как установить и запустить mongodb на системе Linux.

Скачиваем и устанавливаем сервер

Для того, чтобы скачать mongodb, необходимо перейти по ссылке на официальный сайт, в списке выбрать MongoDB Community Server и скачать необходимую вам версию mongodb.

Я скачал tgz и на его примере покажу установку.

wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.4.0.tgzCode language: plaintext (plaintext)

Распаковываем архив

tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.4.0.tgzCode language: plaintext (plaintext)

Давайте сразу переименуем папку

mv mongodb-linux-x86_64-ubuntu1804-4.4.0 mongodbCode language: plaintext (plaintext)

Чтобы нормально пользоваться mongo, необходимо добавить путь до папки mongodb в PATH. Для этого надо открыть .bashrc

nano ~/.bashrcCode language: plaintext (plaintext)

И в самый конец файла дописать

export PATH="/path/to/mongodb/bin:$PATH"Code language: plaintext (plaintext)

Где /path/to/ путь до папки mongodb, в моем случае это /home/denis и тогда я добавлю в файл

export PATH="/home/denis/mongodb/bin:$PATH"Code language: plaintext (plaintext)

Чтобы запустить mongodb сервер, необходимо создать папку, в которой будет хранится база данных

mkdir mongodataCode language: plaintext (plaintext)

Теперь мы можем запустить сервер.

По умолчанию mongod ищет папки с базой данный в директории /data/db, чтобы указать другую папку, используем ключ —dbpath

mongod --dbpath mongodataCode language: plaintext (plaintext)

Вы увидите вывод лог файла старта сервера и сможете подключится к нему через mongo shell

mongoCode language: plaintext (plaintext)

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

show dbsCode language: plaintext (plaintext)

Для того, чтобы остановить сервер

use admin
db.shutdownServer()Code language: plaintext (plaintext)

Так же, выключить сервер можно командой из shell

mongo admin --eval 'db.shutdownServer()'Code language: plaintext (plaintext)

Варианты запуска сервера mongodb

По умолчанию, mongodb использует 27017 порт, папкой базы данных по пути /data/db и выводит логи в консоль. Чтобы запустить сервер на другом порту, используйте аргумент —port, например:

mongod --port 37017 --dbpath /home/denis/mongodataCode language: plaintext (plaintext)

Теперь, для того чтобы подключится к серверу, необходимо выполнить:

mongo --port 37017Code language: Inform 7 (inform7)

Чтобы запустить сервер в background режиме, необходимо указать параметр —fork, так же необходимо указать путь до логов используя команду —logpath

mkdir logs
mongod --port 37017 --dbpath /home/denis/mongodata --logpath /home/denis/logs/mongod.log --forkCode language: plaintext (plaintext)

Чтобы оставить сервер, воспользуйтесь командой

mongo --port 37017 admin --eval 'db.shutdownServer()'Code language: plaintext (plaintext)

Все возможные параметры запуска mongod можно найти в документации на сайте

Файл конфигурации mongod

Очень не удобно запускать монго используя параметры, намного удобнее использовать конфигурационный файл. Давайте создадим конфиг файл mongod:

nano mongod.confCode language: Hy (hy)

И вставим в него следующее содержание. Не забывайте изменять /path/to/ на ваши значения.

storage:
  dbPath: "/path/to/mongodata"
systemLog:
  path: "/path/to/logs/mongod.log"
  logAppend: true
  destination: "file"
net:
  bindIp : localhost
processManagement:
  fork : trueCode language: plaintext (plaintext)

И запустим наш сервер монго следующим образом:

mongod --config mongod.confCode language: plaintext (plaintext)

Или в сокращенном варианте

mongod -f mongod.confCode language: plaintext (plaintext)

Если вы увидели что то вроде:

$ mongod --config mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 9028
ERROR: child process failed, exited with 1
To see additional information in this output, start without the "--fork" option.Code language: plaintext (plaintext)

Значит что-то сделано не верно, проверьте все пути до файлов.

Успешный запуск должен выглядеть так:

$ mongod --config mongod.conf
about to fork child process, waiting until server is ready for connections.
forked process: 9058
child process started successfully, parent exitingCode language: plaintext (plaintext)

Все параметры конфиг файла можно найти на сайте

В следующей статья я расскажу вам как добавить пользователя в монгодб

Denis Pershin

Published by
Denis Pershin

Recent Posts

Как исправить ошибку «Write Failed: broken pipe» при SSH соединении

Ошибка "Write Failed: broken pipe" в SSH соединении обычно возникает, когда клиент или сервер разрывает…

11 месяцев ago

Java Enum — перечисления в Java

Что такое Enum в Java Перечисление (enum) в Java - это тип данных, который позволяет…

2 года ago

Массивы в Java — создание, доступ к элементам, изменение данных

Что такое массивы? Массив - это структура данных в Java, которая представляет собой упорядоченную коллекцию…

2 года ago

ArrayList в Java — Основное

ArrayList в Java - это класс, предоставляющий возможность создания массива переменной длины, который можно изменять…

2 года ago

Как подключиться к Yandex Cloud Storage через AWS S3 golang

Проблема Если вы вдруг решили подключиться в Yandex Cloud Storage с помощью библиотеки golang aws,…

2 года ago

JDK MIssion Control на Mac

В данной заметке я попытаюсь рассказать как исправить ошибку с запуском JDK Mission Control на…

2 года ago

This website uses cookies.