MongoDB – Юнит mongod.service не найден – Ubuntu 16.04

Вопрос или проблема

Когда я пытаюсь запустить MongoDB, я получаю следующую ошибку:

# mongo  
MongoDB shell version: 3.2.6
connecting to: test
2016-05-21T16:14:31.183+0300 W NETWORK  [thread1] Не удалось подключиться к 127.0.0.1:27017, причина: errno:111 Connection refused
2016-05-21T16:14:31.183+0300 E QUERY    [thread1] Ошибка: не удалось подключиться к серверу 127.0.0.1:27017, попытка подключения не удалась:
connect@src/mongo/shell/mongo.js:229:14
@(connect):1:6

exception: connect failed

После этого я начал разбираться и узнал, что сначала нужно запустить сервер MongoDB с помощью команды mongod. Но когда я это делаю, ошибка появляется снова:

# mongod
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten] MongoDB запускается: pid=32019 port=27017 dbpath=/data/db 64-bit host=ibrahim-Inspiron-3542
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten] версия базы данных v3.2.6
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten] git версия: 05552b562c7a0b3143a729aaa0838e558dc49b25
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten] OpenSSL версия: OpenSSL 1.0.2g-fips 1 Mar 2016
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten] allocator: tcmalloc
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten] модули: нет
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten] окружение сборки:
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten]     distmod: ubuntu1404
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten]     distarch: x86_64
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten]     target_arch: x86_64
2016-05-21T16:19:15.410+0300 I CONTROL  [initandlisten] опции: {}
2016-05-21T16:19:15.451+0300 I STORAGE  [initandlisten] исключение в initAndListen: 29 Директория данных /data/db не найдена., завершение работы
2016-05-21T16:19:15.451+0300 I CONTROL  [initandlisten] dbexit:  rc: 100

Я пытаюсь запустить службу mongod в консоли:

# service mongod start
Failed to start mongod.service: Unit mongod.service not found.

Что мне делать?

Мой английский не так хорош, пожалуйста, ответьте на этот вопрос простым английским.

Следующий шаг — убедиться, что у вас есть файл единицы для службы.

Выполните эту команду:
ls /lib/systemd/system

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

Теоретически, это должно быть последнее, что вам нужно сделать, чтобы все заработало.
По сути, это просто файл, который указывает системе, как приводить службу в различные состояния, и небольшие действия по уборке, которые необходимо выполнить.

Ответ находится в вашем лог-файле, так как там сказано /data/db не найдена, просто создайте файл /data/db.

Ответ или решение

Чтобы решить проблему с ошибкой при запуске службы MongoDB на Ubuntu 16.04, рассмотрим несколько возможных причин и шагов по их устранению.

Анализ проблемы

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

  2. Ошибка при запуске mongod:
    При попытке запуска MongoDB через команду mongod вы получаете сообщение, что отсутствует директория /data/db. Это стандартная директория по умолчанию для хранения данных MongoDB.

  3. Отсутствие службы mongod:
    Сообщение об отсутствии mongod.service указывает на то, что служба MongoDB не настроена или неправильно установлена.

Шаги по решению проблемы

  1. Создание директории для данных:
    Так как MongoDB в версии 3.2.6 по умолчанию использует /data/db для хранения данных, необходимо создать эту папку и обеспечить ей правильные права доступа:

    sudo mkdir -p /data/db
    sudo chown -R $(whoami) /data/db
  2. Проверка установки MongoDB:
    Убедитесь, что MongoDB установлена корректно. Используйте следующие команды для проверки:

    mongod --version

    Если MongoDB не установлена, выполните установку:

    sudo apt update
    sudo apt install -y mongodb
  3. Настройка службы systemd (если требуется):
    Если mongod.service отсутствует, возможно, MongoDB была установлена без настройки службы в systemd. Попробуйте создать файл службы вручную:

    Создайте файл службы:

    sudo nano /lib/systemd/system/mongod.service

    Вставьте следующий контент в файл:

    [Unit]
    Description=MongoDB Database Server
    After=network.target
    
    [Service]
    User=mongodb
    ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
    
    [Install]
    WantedBy=multi-user.target

    Сохраните изменения и выйдите из редактора.

  4. Перезапуск и проверка службы:
    Выполните команды для перезапуска службы и проверки её статуса:

    sudo systemctl daemon-reload
    sudo systemctl start mongod
    sudo systemctl enable mongod
    sudo systemctl status mongod
  5. Проверка подключения:
    Убедитесь, что MongoDB работает, попробовав подключиться к ней:

    mongo

Заключение

Следуя этим инструкциям, вы должны успешно запустить и подключиться к MongoDB. Убедитесь, что у вас установлены соответствующие пакеты и настроены все необходимые директории. Если проблема сохраняется, убедитесь, что все шаги выполнены корректно, особенно создание и настройка системного файла службы.

Оцените материал
Добавить комментарий

Капча загружается...