Сегодня я расскажу как установить и запустить mongodb на системе Linux.
Скачиваем и устанавливаем сервер
Для того, чтобы скачать mongodb, необходимо перейти по ссылке на официальный сайт, в списке выбрать MongoDB Community Server и скачать необходимую вам версию mongodb.
![mongodb download](https://pershin.io/wp-content/uploads/2020/08/download-mongodb-server-2.png)
Я скачал tgz и на его примере покажу установку.
wget https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-ubuntu1804-4.4.0.tgz
Code language: plaintext (plaintext)
Распаковываем архив
tar -zxvf mongodb-linux-x86_64-ubuntu1804-4.4.0.tgz
Code language: plaintext (plaintext)
Давайте сразу переименуем папку
mv mongodb-linux-x86_64-ubuntu1804-4.4.0 mongodb
Code language: plaintext (plaintext)
Чтобы нормально пользоваться mongo, необходимо добавить путь до папки mongodb в PATH. Для этого надо открыть .bashrc
nano ~/.bashrc
Code 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 mongodata
Code language: plaintext (plaintext)
Теперь мы можем запустить сервер.
По умолчанию mongod ищет папки с базой данный в директории /data/db, чтобы указать другую папку, используем ключ —dbpath
mongod --dbpath mongodata
Code language: plaintext (plaintext)
Вы увидите вывод лог файла старта сервера и сможете подключится к нему через mongo shell
mongo
Code language: plaintext (plaintext)
После подключения, вы можете вводить команды, например, чтобы увидеть список всех баз данных
show dbs
Code 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/mongodata
Code language: plaintext (plaintext)
Теперь, для того чтобы подключится к серверу, необходимо выполнить:
mongo --port 37017
Code language: Inform 7 (inform7)
Чтобы запустить сервер в background режиме, необходимо указать параметр —fork, так же необходимо указать путь до логов используя команду —logpath
mkdir logs
mongod --port 37017 --dbpath /home/denis/mongodata --logpath /home/denis/logs/mongod.log --fork
Code language: plaintext (plaintext)
Чтобы оставить сервер, воспользуйтесь командой
mongo --port 37017 admin --eval 'db.shutdownServer()'
Code language: plaintext (plaintext)
Все возможные параметры запуска mongod можно найти в документации на сайте
Файл конфигурации mongod
Очень не удобно запускать монго используя параметры, намного удобнее использовать конфигурационный файл. Давайте создадим конфиг файл mongod:
nano mongod.conf
Code 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 : true
Code language: plaintext (plaintext)
И запустим наш сервер монго следующим образом:
mongod --config mongod.conf
Code language: plaintext (plaintext)
Или в сокращенном варианте
mongod -f mongod.conf
Code 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 exiting
Code language: plaintext (plaintext)
Все параметры конфиг файла можно найти на сайте
В следующей статья я расскажу вам как добавить пользователя в монгодб