
Служба mongod отвечает за запуск серверной части MongoDB и обеспечивает работу базы данных в постоянном режиме. Без активного процесса mongod невозможно подключение клиентов, выполнение запросов и хранение данных. Поэтому корректный запуск и контроль этой службы – обязательный этап при настройке MongoDB.
В Linux служба обычно управляется через systemd или init.d, что позволяет запускать mongod при старте системы и отслеживать её состояние стандартными командами. В Windows MongoDB может быть зарегистрирована как системная служба, запускаемая автоматически или вручную через PowerShell или консоль управления службами.
Далее рассмотрены проверенные способы запуска mongod на обеих системах, примеры команд, пути конфигурационных файлов и распространённые ошибки, мешающие корректному запуску сервера.
Проверка установки MongoDB и наличия службы mongod

Перед запуском службы необходимо убедиться, что MongoDB установлена и процесс mongod доступен в системе. Это позволяет избежать ошибок при попытке запуска несуществующей службы или неправильного обращения к бинарным файлам.
В Linux проверить наличие MongoDB можно несколькими способами:
- Выполнить команду
mongod --version– она покажет версию установленного сервера и подтвердит наличие бинарного файла. - Проверить наличие пакета через менеджер пакетов, например:
apt list --installed | grep mongoилиdnf list installed | grep mongo. - Проверить путь к исполняемому файлу командой
which mongod.
Для проверки службы можно использовать:
systemctl status mongod– покажет текущее состояние службы, включая активность и время последнего запуска.ps aux | grep mongod– определяет, запущен ли процесс вручную или через службу.
В Windows наличие установленной MongoDB проверяется так:
- Открыть PowerShell и выполнить
mongod --versionдля проверки версии сервера. - Проверить список служб командой
Get-Service | findstr mongod– если MongoDB зарегистрирована, будет отображено её текущее состояние. - При отсутствии службы убедиться, что путь к
mongod.exeдобавлен в переменную среды PATH.
Если ни один из способов не подтверждает наличие MongoDB, необходимо установить сервер заново из официальных репозиториев или с сайта mongodb.com.
Запуск mongod вручную через командную строку в Linux

Ручной запуск mongod используется для тестирования конфигурации или при отсутствии системной службы. Основная команда выглядит так:
mongod --config /etc/mongod.conf
Файл /etc/mongod.conf содержит параметры запуска – путь к данным, порты, настройки журналов. Если конфигурация отсутствует, сервер можно запустить с минимальными параметрами:
mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork
Ключ —dbpath указывает каталог для хранения данных, —logpath – файл журнала, а —fork запускает процесс в фоновом режиме. Без него терминал будет занят сессией mongod.
Перед запуском необходимо убедиться, что каталог данных существует и доступен для пользователя mongodb:
sudo chown -R mongodb:mongodb /var/lib/mongo
Если порт 27017 занят, можно задать другой, указав параметр —port:
mongod --port 27018 --dbpath /var/lib/mongo --fork --logpath /var/log/mongodb/mongod.log
После успешного запуска проверить процесс можно командой:
ps aux | grep mongod
Для завершения работы используется сигнал завершения через kill или стандартная остановка службы при активной интеграции с systemd.
Добавление mongod в автозагрузку Linux через systemctl
Чтобы служба mongod запускалась автоматически при загрузке системы, необходимо активировать её через systemctl. Это гарантирует, что сервер MongoDB будет доступен без ручного запуска после перезагрузки.
Проверить наличие unit-файла можно командой:
ls /lib/systemd/system/mongod.service
Если файл присутствует, включение автозапуска выполняется так:
sudo systemctl enable mongod
После этого служба будет запускаться автоматически при старте системы. Чтобы убедиться, что активация прошла успешно, выполните:
systemctl is-enabled mongod
Для немедленного запуска без перезагрузки используется команда:
sudo systemctl start mongod
Проверить состояние службы можно через:
systemctl status mongod
Если unit-файл отсутствует, его можно создать вручную. Пример минимального содержимого файла /etc/systemd/system/mongod.service:
[Unit]
Description=MongoDB Database Server
After=network.target
[Service]
User=mongodb
ExecStart=/usr/bin/mongod --config /etc/mongod.conf
PIDFile=/var/run/mongodb/mongod.pid
Restart=always
[Install]
WantedBy=multi-user.target
После сохранения файла необходимо выполнить команды:
sudo systemctl daemon-reload
sudo systemctl enable mongod
sudo systemctl start mongod
Таким образом, mongod будет автоматически запускаться при каждом старте Linux, а управление им станет доступно через стандартные инструменты systemd.
Просмотр состояния и остановка службы mongod в Linux

Состояние службы mongod в Linux удобно контролировать через systemctl. Команда:
systemctl status mongod
systemctl is-active mongod
Если требуется проверить только наличие процесса, без участия systemd, применяется команда:
ps aux | grep mongod
или просмотр открытых портов:
sudo netstat -tulnp | grep 27017
Для корректной остановки используется команда:
sudo systemctl stop mongod
После этого статус можно перепроверить:
systemctl status mongod
Если служба не реагирует, допускается принудительное завершение процесса:
sudo kill $(pgrep mongod)
Чтобы временно отключить автозапуск, выполняется:
sudo systemctl disable mongod
Регулярная проверка состояния службы помогает убедиться, что сервер MongoDB работает стабильно и корректно завершает сессии при остановке.
Установка MongoDB как службы в Windows
MongoDB можно зарегистрировать как службу Windows, чтобы она запускалась автоматически при старте системы. Для этого необходимо указать путь к исполняемому файлу mongod.exe и конфигурационному файлу.
Сначала создаётся каталог для данных и журналов:
mkdir C:\data\db
mkdir C:\data\log
Далее создаётся конфигурационный файл C:\Program Files\MongoDB\Server\{версия}\bin\mongod.cfg со следующим содержимым:
systemLog:
destination: file
path: C:\data\log\mongod.log
storage:
dbPath: C:\data\db
net:
bindIp: 127.0.0.1
port: 27017
После подготовки конфигурации служба регистрируется через командную строку, запущенную от имени администратора:
"C:\Program Files\MongoDB\Server\{версия}\bin\mongod.exe" --config "C:\Program Files\MongoDB\Server\{версия}\bin\mongod.cfg" --install
Чтобы задать имя службы, можно добавить параметр:
--serviceName "MongoDB"
После установки запустить службу можно командой:
net start MongoDB
Проверить наличие службы в системе – через консоль:
sc query MongoDB
Для удаления регистрации используется команда:
"C:\Program Files\MongoDB\Server\{версия}\bin\mongod.exe" --remove
После регистрации MongoDB будет работать как системная служба, управляемая стандартными средствами Windows.
Запуск и остановка службы mongod через PowerShell или CMD
Для управления службой mongod в Windows используются стандартные команды PowerShell или CMD. В PowerShell запуск выполняется командой:
Start-Service -Name MongoDB
Для остановки службы используется:
Stop-Service -Name MongoDB
Проверить состояние службы можно командой:
Get-Service -Name MongoDB
В CMD команды аналогичны, с использованием утилиты net:
Запуск службы:
net start MongoDB
Остановка службы:
net stop MongoDB
Если необходимо перезапустить службу для применения изменений конфигурации:
Restart-Service -Name MongoDB (PowerShell)
или
net stop MongoDB && net start MongoDB (CMD)
Регулярное использование этих команд позволяет контролировать доступность MongoDB и безопасно завершать работу сервера при изменении настроек.
Настройка автоматического запуска mongod при загрузке Windows

Чтобы служба mongod запускалась автоматически при старте Windows, необходимо изменить её тип запуска. Это можно сделать через PowerShell, CMD или графический интерфейс служб.
Команда для PowerShell:
Set-Service -Name MongoDB -StartupType Automatic
Аналогичная команда в CMD с использованием утилиты sc:
sc config MongoDB start= auto
Проверить текущий тип запуска службы можно так:
Get-Service -Name MongoDB | Select-Object Name, Status, StartType
Для удобства контроля можно использовать таблицу статусов:
| Команда | Описание | |
|---|---|---|
| Get-Service -Name MongoDB | Отображает состояние службы | Name: MongoDB, Status: Running, StartType: Automatic |
| Set-Service -Name MongoDB -StartupType Automatic | Устанавливает автозапуск службы | |
| sc query MongoDB | Проверка состояния через CMD | STATE: 4 RUNNING |
После настройки автозапуска служба MongoDB будет активироваться при каждом старте Windows, обеспечивая постоянный доступ к серверу без ручного вмешательства.
Решение типичных ошибок при запуске службы mongod
При запуске mongod могут возникать ошибки, связанные с правами доступа, занятыми портами или некорректными путями к данным. Основные ситуации и способы их устранения:
- Ошибка доступа к каталогу данных:
Сообщения вида Data directory /var/lib/mongo not found или Permission denied появляются, если каталог не существует или у пользователя нет прав. Решение:
- Создать каталог:
sudo mkdir -p /var/lib/mongo - Установить владельца:
sudo chown -R mongodb:mongodb /var/lib/mongo
- Создать каталог:
- Порт 27017 занят:
Ошибка address already in use возникает, если другой процесс использует порт. Решение:
- Проверить занятие порта:
sudo netstat -tulnp | grep 27017 - Завершить процесс или указать другой порт при запуске:
mongod --port 27018
- Проверить занятие порта:
- Проблемы с файлом журнала:
Если путь к журналу указан неверно или нет прав на запись, mongod не стартует. Решение:
- Проверить путь в конфигурации
/etc/mongod.conf - Создать каталог и установить права:
sudo mkdir -p /var/log/mongodb,sudo chown -R mongodb:mongodb /var/log/mongodb
- Проверить путь в конфигурации
- Служба не запускается в Windows:
Чаще всего связано с неправильным указанием конфигурационного файла или отсутствием каталога данных. Решение:
- Проверить наличие
mongod.cfgи пути кdbPathиlogPath - Убедиться, что служба зарегистрирована:
sc query MongoDB - При необходимости перерегистрировать службу:
mongod.exe --removeиmongod.exe --config "C:\path\mongod.cfg" --install
- Проверить наличие
- Ошибки синтаксиса в конфигурационном файле:
Некорректные отступы или неверные ключи приводят к невозможности запуска. Решение:
- Использовать YAML-валидатор для проверки
mongod.conf - Сверить ключи с официальной документацией MongoDB
- Использовать YAML-валидатор для проверки
Регулярная проверка логов и статуса службы помогает быстро выявлять и устранять ошибки, обеспечивая стабильную работу сервера MongoDB.
Вопрос-ответ:
Как проверить, что MongoDB установлена и служба mongod доступна в Linux?
Для проверки установленного MongoDB в Linux выполните команду mongod --version. Она покажет версию сервера и подтвердит наличие бинарного файла. Также полезно проверить состояние службы: systemctl status mongod покажет, запущена ли она и активна ли. Если процесса нет, можно использовать ps aux | grep mongod для поиска вручную.
Какие команды использовать для ручного запуска mongod в Linux?
Для запуска mongod вручную применяют команду mongod --config /etc/mongod.conf, где указан путь к конфигурации. Если конфигурации нет, можно задать каталог данных и файл журнала явно: mongod --dbpath /var/lib/mongo --logpath /var/log/mongodb/mongod.log --fork. Параметр —fork запускает процесс в фоне, иначе терминал будет занят сессией сервера.
Как добавить службу mongod в автозагрузку Linux через systemctl?
Для автозапуска службы используйте команду sudo systemctl enable mongod. Это гарантирует запуск сервера при старте системы. Проверить результат можно командой systemctl is-enabled mongod. После активации службы запустить её сразу можно через sudo systemctl start mongod. Если unit-файл отсутствует, его нужно создать в /etc/systemd/system/mongod.service с указанием пользователя, пути к конфигурации и PID-файла.
Как зарегистрировать MongoDB как службу в Windows и настроить автозапуск?
Сначала создайте каталоги для данных и логов, например C:\data\db и C:\data\log. Затем подготовьте конфигурационный файл mongod.cfg с путями к dbPath и logPath. После этого выполните команду для установки службы: mongod.exe --config "C:\path\mongod.cfg" --install --serviceName "MongoDB". Для автозапуска задайте тип запуска через PowerShell: Set-Service -Name MongoDB -StartupType Automatic или CMD: sc config MongoDB start= auto.
Что делать, если служба mongod не запускается и выдаёт ошибки доступа или занятых портов?
В Linux проверьте права на каталог данных и логов: sudo chown -R mongodb:mongodb /var/lib/mongo /var/log/mongodb. Если порт 27017 занят, используйте другой: mongod --port 27018. В Windows убедитесь, что каталоги данных и логов существуют и права пользователя позволяют запись. Проверяйте конфигурацию на корректные пути и синтаксис. Для перерегистрации службы выполните mongod.exe --remove, затем установку с корректным конфигурационным файлом.
Как проверить правильность установки MongoDB и доступность службы mongod в Linux?
Для проверки установки MongoDB в Linux выполните команду mongod --version, чтобы убедиться, что бинарный файл присутствует и доступен. Затем проверьте состояние службы через systemctl status mongod, где будет указано, запущена ли служба, PID процесса и путь к журналу. Если служба не активна, можно использовать ps aux | grep mongod для поиска процессов вручную. Это помогает выявить ошибки на раннем этапе и определить, готовы ли сервер и служба к запуску.
Какие действия нужны, чтобы остановить службу mongod в Windows и Linux безопасно?
В Linux для корректной остановки службы используется команда sudo systemctl stop mongod. После этого рекомендуется проверить отсутствие активного процесса с помощью ps aux | grep mongod или netstat -tulnp | grep 27017. В Windows используйте PowerShell: Stop-Service -Name MongoDB или CMD: net stop MongoDB. Принудительное завершение процессов допустимо только при невозможности остановки через стандартные средства. Такой подход предотвращает повреждение данных и обеспечивает корректное завершение работы сервера.
