Итак, вы решили использовать MongoDB, отличный alternative to MariaDB для создания приложения стека MERN, аналитической платформы или любой системы, основанной на документах, но уперся в стену из-за старых добрых командных строк Linux и бесчисленных ошибок терминала.
Однако не беспокойтесь, поскольку в этом руководстве содержится все, что вам нужно знать от А до Я для установки MongoDB в Ubuntu.
MongoDB использует XYZ версионирование. 8.0 это главный выпуск серии и 8.2 это незначительный выпуск в рамках этого цикла 8.0. Второстепенные выпуски добавляют функции в рамках одного основного цикла и, начиная с версии 8.0, также предлагаются для локальной установки для конкретных случаев использования (например, поиска и векторного поиска). MongoDB 8.0 в Ubuntu поддерживает 24.04 (Благородный), 22.04 (Джемми) и 20.04 (Фокальный) в 64-битных системах с поддержкой ARM64 на некоторых платформах.
Предварительные условия GnuPG и Curl
Перед установкой официальной mongodb-org пакет, Ubuntu требует двух предварительных условий: ГнуПГ и Завиток. Эти инструменты дают Ubuntu разрешение на загрузку MongoDB, поскольку собственная версия Ubuntu монгодб пакет не поддерживается MongoDB Inc. и конфликтует с официальным mongodb-org упаковка. Если вы уже установили монгодб обязательно удалите его.
Далее выполните команду sudo apt-get установить gnupg Curl. Curl — это инструмент для загрузки файлов из Интернета, который необходим для получения ключа безопасности MongoDB. GnuPG — это то, что Ubuntu использует для проверки подлинности программного обеспечения. Если GnuPG отсутствует, Ubuntu не сможет проверить пакеты MongoDB.
Убедитесь, что на вашем терминале успешно установлены GnuPG и Curl. Если да, то это должно выглядеть так:
Импорт GPG-ключа MongoDB
Менеджер пакетов Ubuntu, APT, использует ключи GPG для проверки пакетов перед установкой. Без этого ключа GPG Ubuntu не позволяет добавлять репозитории MongoDB. Введите следующую команду в своем терминале, чтобы добавить ключ:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
Если это работает, вывод вашего терминала должен выглядеть следующим образом:
Проще говоря, эта команда загружает подпись безопасности MongoDB, преобразует ее в формат, который может читать Ubuntu, и сохраняет ее в защищенной системной папке. Вот разбивка командной строки по разделам:
- URL-адрес Curl -fsSL загружает официальный ключ MongoDB
- – Дорогой Мор преобразует ключ из текстового формата в двоичный для понимания Ubuntu
- -o /usr/share/keyrings/mongodb-server-8.0.gpg сохраняет двоичный файл в папке, где Ubuntu хранит доверенные ключи
Если вы идеально соответствуете каждой командной строке, открытый ключ GPG будет добавлен без каких-либо проблем. Однако некоторые пользователи сталкиваются с проблемами при загрузке MongoDB из-за несовпадающего ключа GPG. Такие ошибки:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
Это происходит, когда вы ранее не следовали точным командам клавиш GPG и вместо этого используете sudo apt-ключ потому что современная Ubuntu этого не рекомендует.
Добавить репозиторий MongoDB
При добавлении репозитория MongoDB создается файл, сообщающий Ubuntu, что пакеты MongoDB находятся по определенному интернет-адресу. Создайте файл списка по адресу /etc/apt/sources.list.d/mongodb-org-8.0.list записав в него строку репозитория, используя эхо … | судо тройник…
Здесь все сложнее, поскольку разные версии Ubuntu требуют разных вариантов этой команды. Теперь мы рассмотрим, как импортировать файл списка в трех упомянутых ранее версиях Ubuntu.
Ubuntu 24.04 (Благородный)
Чтобы создать файл списка в Ubuntu 24.04, просто введите echo «deb [arch=amd64,arm64подписано=/usr/share/keyrings/mongodb-server-8.0.gpg] https://repo.mongodb.org/apt/ubuntu благородный/mongodb-org/8.0 multiverse» | sudo тройник /etc/apt/sources.list.d/mongodb-org-8.0.list на вашем терминале.
Это может показаться запутанным, но не переживайте. Как только мы разобьем команду на разделы, все станет кристально ясно.
- эхо печатает текст
- /etc/apt/sources.list.d — это папка, в которой Ubuntu хранит определения исходного кода программного обеспечения. Каждый файл с .список формат внутри папки указывает Ubuntu на определенное место для загрузки программного обеспечения.
- Вы по умолчанию ничего не можете писать в системные папки как обычный пользователь. тройник дает пользователю специальное разрешение на запись текста в системные файлы, используя судо
- благородный это кодовое имя Ubuntu 24.04. Каждая версия Ubuntu имеет кодовое имя, например:
| Версия | Кодовое имя |
| 20.04 | Фокусный |
| 22.04 | Джемми |
| 24.04 | Благородный |
Если вы не сопоставите свою версию Ubuntu с правильной командной строкой, Ubuntu не сможет распознать репозиторий MongoDB.
Ubuntu 22.04 (Джемми)
Добавление файла списка в Ubuntu Jammy выглядит точно так же, но при замене необходимо ввести командную строку. благородный с варенье, так:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Убедитесь, что он соответствует вашей версии Ubuntu, иначе снова произойдет сбой.
Ubuntu 20.04 (фокусный)
Выполните те же действия здесь, но вместо благородный or варенье, Путин фокусный:
echo «deb [arch=amd64,arm64подписано=/usr/share/keyrings/mongodb-server-8.0.gpg] https://repo.mongodb.org/apt/ubuntu focus/mongodb-org/8.0 multiverse» | sudo тройник /etc/apt/sources.list.d/mongodb-org-8.0.list
Теперь, когда репозиторий настроен, можно переходить к установке. mongodb-org.
Обновите базу данных пакетов.
Теперь, когда репозиторий распознан Ubuntu, вам необходимо перезагрузить базу данных пакетов внутри него, поэтому с этого момента он также включает MongoDB. Введите команду, указанную ниже:
sudo apt-get update
Эта команда остается одинаковой для всех версий Ubuntu, и если ее пропустить, Ubuntu не будет включать MongoDB. Если команда выполняет свою работу, вывод вашего терминала должен быть:
Теперь, после перезагрузки базы данных пакетов, пришло время загрузить пакеты MongoDB.
Установите сервер сообщества MongoDB.
Существуют различные версии MongoDB для установки, но пользователи обычно предпочитают последнюю стабильную версию, поскольку она более предпочтительна. Чтобы установить последнюю стабильную версию, запустите sudo apt-get install -y mongodb-org
Теперь Ubuntu загрузила пакеты MongoDB, установила их, создала учетную запись пользователя MongoDB и каталог данных и зарегистрировала MongoDB в качестве системной службы. К настоящему моменту мы рассмотрели, как загрузить MongoDB в Ubuntu. Теперь давайте начнем.
Как запустить MongoDB
Теперь, чтобы запустить MongoDB, нам нужно указать диспетчеру служб Ubuntu «systemd» распознавать MongoDB как фоновую службу, и для этого вам нужно ввести в терминале следующую команду:
sudo systemctl start mongod
Если команда выполнит свою работу, Ubuntu теперь откроет MongoDB в качестве фонового приложения. Однако, если команда не выполняет свою работу, вы можете получить сообщение об ошибке, подобное Не удалось запустить mongod.service..
Это может произойти из-за нескольких распространенных проблем:
- Ошибка файла конфигурации in /etc/mongod.conf (Ошибки отступов YAML распространены)
- Портовый конфликт (порт 27017 уже занят)
- Проблема с разрешением в каталогах данных или журналов (var/lib/mongodb или var/log/mongodb)
- Диск заполнен or поврежденное состояние файловой системы
Три команды для диагностики проблемы
Легко сказать, что может быть не так с вашей конфигурацией, что MongoDB не запускается, но гораздо сложнее определить точную причину. Три простых способа определить причину возникновения ошибки:
- Проверьте статус услуги: sudo systemctl статус mongod –no-pager
- Проверьте подробные журналы (самое важное): sudo Journalctl -u mongod –no-pager -n 100
- Проверьте собственный файл журнала MongoDB.
Но учтите, что если ваш диск переполнен или системные файлы повреждены, исправление будет больше касаться вашего оборудования, а не программного обеспечения. Пользователям, возможно, придется купить лучшее оборудование для настройки своего сервера, чтобы эффективно использовать MongoDB, если их текущая настройка устарела.
Если покупка полноценного сервера не входит в ваш бюджет, рассмотрите возможность посещения Cloudzy. Ubuntu VPS для удобной работы на собственном частном сервере с дистрибутивом Ubuntu по вашему вкусу. Он поставляется с 24/7 поддержка и до 40Gbps скорость сети, благодаря NVMe твердотельный накопитель и Оперативная память DDR5 хранилище.
Кроме того, он имеет минимальную задержку, 99.95% время безотказной работы и 14 дней гарантия возврата денег. Мало того, он также доступен в 12 местах по всему миру по доступной цене.
Три наиболее распространенных исправления для запуска MongoDB
Не существует абсолютного способа одновременно распознать точную проблему вашей системы с MongoDB и исправить ее одним простым шагом. Итак, вот несколько распространенных исправлений, которые вы можете использовать, чтобы ваша MongoDB заработала.
- Ошибка отступа конфигурации YAML. Предположим, вы отредактировали /etc/mongod.conf еще раз проверьте отступ, запросив судо нано /etc/mongod.conf. Файл YAML очень чувствителен к пробелам, поэтому убедитесь, что на каждом уровне имеется только два пробела. /etc/mongod.conf.
- Оккупированный порт 27017. Если что-то еще использует порт 27017, выключите его или измените порт MongoDB в mongod.conf. Если вы не уверены в том, что что-то работает на порту 27017, смело запускайте судо сс -lntp | группа 27017 чтобы проверить это
- Проблема с разрешением в каталоге данных. Иногда MongoDB не имеет разрешения на запуск в вашей системе и поэтому не запускается вообще. Первый запуск sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, затем перезапустите MongoDB с помощью sudo systemctl перезапустить mongod
В соответствии с Официальный сайт MongoDB, еще один способ обойти эту проблему — перезагрузить демон с помощью sudo systemctl демон-перезагрузкаи запустите первую команду, sudo systemctl запустить mongod, снова.
Если нет mongod.service, при установке не был установлен системный модуль, поэтому переустановите mongodb-org набор пакетов.
С учетом всего вышесказанного вы можете затем проверить, успешно ли запустился MongoDB с помощью статус sudo systemctl mongod. Если терминал говорит активный (работающий), ты готов идти. Но есть еще некоторые дополнительные настройки, которые сделают вашу работу более плавной.
Сделать MongoDB автоматизированным
MongoDB не открывается автоматически при каждом включении сервера; вам придется каждый раз повторять некоторые из упомянутых шагов. При желании вы можете указать Ubuntu запускать MongoDB после загрузки рабочего стола.
Просто запустите sudo systemctl включить mongod на вашем терминале, который с этого момента будет сообщать вашей системе запускать MongoDB после каждой перезагрузки. Кроме того, вы можете перезапустить монгод процесс, выдав команду sudo systemctl перезапустить mongod. Кроме того, пользователям может потребоваться следить за процессом на наличие ошибок или важных сообщений, просматривая выходные данные в файле:
/var/log/mongodb/mongod.log
Теперь, когда все настроено, давайте начнем использовать ваш монгод.
Открытие оболочки MongoDB
Чтобы взаимодействовать со своей базой данных, пользователи должны открыть оболочку MongoDB, введя команду монгош. Думайте об этом как о выделенном терминале командной строки для MongoDB или консоли MySQL. Альтернативно вы можете взаимодействовать с MongoDB с помощью инструментов графического интерфейса, таких как драйверы MongoDB. Но если вы хотите взаимодействовать с ним из терминала, монгош создан для того, чтобы это произошло.
Теперь ваша MongoDB будет полностью функциональной, но вам необходимо предпринять некоторые дополнительные шаги, чтобы обеспечить ее безопасность.
Сделать MongoDB аутентифицированным
MongoDB по умолчанию не имеет защиты паролем, поскольку у вас уже должен быть доступ для создания пользователя. Вот простой способ сделать это
Создать пользователя-администратора
Сначала вам нужно переключиться на базу данных администратора с помощью:
use admin
Затем создайте пользователя с db.createUser({…}). Заполните его своим
- Имя пользователя
- Пароль
- Роль
Для роли желательно ввести корень что означает полный контроль или администрирование.
Включить аутентификацию
Теперь, когда у нас есть собственные настройки пользователя, нам нужно отредактировать /etc/mongod.conf файл. Это потому, что этот файл управляет поведением MongoDB. Но имейте в виду, что редактируя файл, вы всегда должны перезапускать монгод обслуживание после этого с sudo systemctl перезапустить mongod. Здесь нам нужно изменить один параметр, называемый авторизацией, который выглядит следующим образом:
security:
authorization:
Чтобы завершить процесс аутентификации, просто измените значение авторизации следующим образом:
security:
authorization: enabled
С этого момента MongoDB требует входа в систему, поэтому ваша аутентификация завершена. Давайте теперь перейдем к другой конфигурации, которая полностью использует MongoDB.
Откройте свой брандмауэр
Как упоминалось ранее, MongoDB работает на порту 27017. Поскольку брандмауэры по умолчанию блокируют порты, вам необходимо указать брандмауэру, чтобы приложения могли запускаться на порту 27017. Чтобы это произошло, просто введите команду:
ufw allow from YOUR_IP to any port 27017
Альтернативно, вы также можете ввести команду ufw разрешить 27017, но будьте осторожны, потому что запуск этого параметра позволит всему Интернету получить доступ к этому порту. Возможно, безопаснее всего будет использовать первый вариант, поскольку он позволяет трафику получать доступ к порту только с вашего IP-адреса.
Пользователи по-прежнему могут сталкиваться с проблемами при запуске MongoDB, например, с проблемой удаленного доступа. Оставайтесь здесь, чтобы узнать, как это исправить.
Проблема удаленного доступа
MongoDB запускается с связываниеIp. связываниеIp ограничивает MongoDB 127.0.0.1, разрешая только локальные соединения. Таким образом, если бы вы подключились к серверу MongoDB откуда-то еще, вам не был бы предоставлен доступ, поскольку MongoDB по умолчанию настроен на разрешение только локальных подключений, если не настроено иное.
И снова отправляйтесь в /etc/mongod.conf, и вы увидите три такие строки:
net:
port: 27017
bindIp: 127.0.0.1
Если вы хотите разрешить удаленные подключения к вашему монгод пользователь, измените значения, представленные выше, следующим образом:
net:
port: 27017
bindIp: 0.0.0.0
После этого перезапустите монгод обслуживание с sudo systemctl перезапустить mongod как и при любом другом редактировании файла.
Теперь вы предоставили свой монгод разрешение службы на прием удаленных подключений. Но будьте осторожны, так как, сделав это, вы откроете свою базу данных для всего Интернета, если вы еще не прошли аутентификацию. монгод пользователь. Существует множество ботов, которые постоянно сканируют открытые порты MongoDB, поэтому всегда проверяйте, что у вашего пользователя mongod есть пароль.
Обзор общей картины
Поздравляем, теперь вы сделали все, чтобы создать оптимизированный сервис MongoDB для вашей системы Ubuntu. Вот также мысленная карта для отслеживания каждого шага, представленная в этой статье.
| Команда | Что он делает |
| подходящее обновление | Обновить список программного обеспечения |
| подходящая установка | Установить программное обеспечение |
| завиток | Скачать файл |
| gpg | Управление ключами шифрования |
| эхо | Распечатать текст |
| тройник | Запись в защищенный файл |
| запуск системы | Запустить службу |
| systemctl включить | Начать при загрузке |
| Статус системы | Проверить сервис |
| монгош | Войдите в оболочку MongoDB |
| Редактировать /etc/mongod.conf | Включить аутентификацию |
| уф | Управление брандмауэром |
| связываниеIp | Разрешить удаленный доступ |
Это должно помочь вам лучше понять весь процесс. Но если настройка MongoDB самостоятельно для вас слишком сложна, обязательно включите Cloudzy. MongoDB VPS для вашего собственного частного сервера Ubuntu 24.04 LTS с предустановленной MongoDB.
Он поставляется с 99.95% время безотказной работы, 24/7 поддержка и 14 дней гарантия возврата денег. Кроме того, он поддерживает до 40 Gbps пропускной способности благодаря Оперативная память DDR5 и NVMe твердотельный накопитель хранилище. Даже не беспокойтесь о том, где вы живете, потому что это также доступно в 12 локации по всему миру по доступной цене.
Но, несмотря на все вышесказанное, вам наконец-то удалось настроить собственный функциональный сервис MongoDB, оснащенный всеми конфигурациями для поддержки рабочих нагрузок и бизнеса на уровне производства.