Ви вирішили використовувати MongoDB — чудовий вибір alternative to MariaDB для розроблення додатка MERN, платформи аналітики або будь-якої системи на основі документів, але зіткнулись із проблемами використання звичайних командних рядків Linux та безлічі помилок у терміналі.
Не хвилюйтеся, цей посібник містить все, що вам потрібно знати від A до Z для встановлення MongoDB на Ubuntu.
MongoDB використовує X.Y.Z версіонування. 8.0 є головний серія версій, та 8.2 є мінор версія в межах цього циклу 8.0. Малі версії додають функції в межах тієї ж основної версії та, починаючи з 8.0, також доступні для встановлень на власних серверах для конкретних випадків використання (наприклад, Search та Vector Search). MongoDB 8.0 на Ubuntu підтримує 24.04 (Noble), 22.04 (Jammy) та 20.04 (Focal) на 64-бітних системах з підтримкою ARM64 на обраних платформах.
Попередні вимоги GnuPG та Curl
Перед встановленням офіційного mongodb-org пакету Ubuntu вимагає двох попередніх вимог: GnuPG та Curl. Ці інструменти дають Ubuntu дозвіл завантажити MongoDB, оскільки власний mongodb пакет Ubuntu не підтримується MongoDB Inc. і конфліктує з офіційним mongodb-org пакетом. Якщо ви вже встановили mongodb обов'язково видаліть його.
Далі виконайте команду sudo apt-get install 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, і зберігає у захищеній системній папці. Ось розбір команди частина за частиною:
- curl -fsSL URL завантажує офіційний ключ MongoDB
- –dearmor конвертує ключ з текстового формату в двійковий для розуміння 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-key оскільки сучасний Ubuntu це не рекомендує.
Додавання репозиторію MongoDB
Додавання репозиторію MongoDB створює файл, який каже Ubuntu, що пакети MongoDB доступні за конкретною інтернет-адресою. Створіть файл списку за адресою /etc/apt/sources.list.d/mongodb-org-8.0.list записавши рядок репозиторію в нього за допомогою echo … | sudo tee …
Ось де починається складність, оскільки різні версії Ubuntu потребують різних варіантів цієї команди. Тепер розглянемо, як імпортувати файл списку на трьох версіях Ubuntu, про які йшлося раніше.
Ubuntu 24.04 (Noble)
Щоб створити файл списку на Ubuntu 24.04, просто введіть echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list на вашому терміналі.
На перший погляд це може здатися заплутаним, але не хвилюйтесь. Як тільки ми розберемо команду на частини, все стане зрозуміло.
- echo виводить текст
- /etc/apt/sources.list.d це папка, в якій Ubuntu зберігає визначення джерел програмного забезпечення. Кожен файл з .list форматом у цій папці вказує Ubuntu на конкретне місце для завантаження програмного забезпечення
- За замовчуванням звичайний користувач не може писати в системні папки. футболка дає користувачеві спеціальне дозвіл писати текст у системні файли, при цьому використовуючи sudo
- шляхетний це кодова назва для Ubuntu 24.04. Кожна версія Ubuntu має кодову назву на кшталт:
| Версія | Кодова назва |
| 20.04 | Фокальний |
| 22.04 | Jammy |
| 24.04 | Благородний |
Якщо версія Ubuntu не відповідає правильній команді, Ubuntu не зможе розпізнати репозиторій MongoDB.
Ubuntu 22.04 (Jammy)
Додавання файлу списку до Ubuntu Jammy виглядає однаково, але ви повинні ввести командний рядок, замінивши шляхетний з jammyI don't see any English text to translate in your message. Could you please provide the English UI label or phrase you'd like me to translate to Ukrainian?
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 (Focal)
Виконайте ті самі кроки, але замість шляхетний or jammy, помістити в focal:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Тепер, коли репозиторій налаштований, ви можете приступити до встановлення mongodb-org.
Оновіть базу даних пакетів
Тепер, коли репозиторій розпізнаний Ubuntu, вам потрібно перезавантажити базу даних пакетів усередині нього, щоб з цього моменту вона включала MongoDB. Виконайте команду нижче:
sudo apt-get update
Ця команда залишається однаковою для всіх версій Ubuntu, і якщо пропустити, Ubuntu не включить MongoDB. Якщо команда спрацює, вихід терміналу буде таким:
Тепер, після перезавантаження бази даних пакетів, настав час завантажити пакети MongoDB.
Встановіть MongoDB Community Server
Існує кілька релізів 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 status mongod –no-pager
- Перевірте докладні логи (найважливіше): sudo journalctl -u mongod –no-pager -n 100
- Перевірте власний файл логу MongoDB
Але врахуйте, що якщо ваш диск переповнений або системні файли пошкоджені, виправлення буде більше стосуватися обладнання, ніж програмного забезпечення. Користувачам може знадобитися купити краще обладнання для своєї інфраструктури сервера, щоб ефективно запустити MongoDB, якщо їхня поточна конфігурація застаріла.
Якщо покупка повноцінного сервера не входить у ваш бюджет, розгляньте варіант Cloudzy Ubuntu VPS для чистого досвіду на власному приватному сервері з дистрибутивом Ubuntu на вашу подобу. Він пропонує 24/7 підтримка та до 40Gbps швидкість мережі завдяки своїм сховище NVMe SSD та DDR5 RAM сховище.
Крім того, він має мінімальну затримку. 99.95% час роботи та 14-денний гарантія повернення коштів. Це ще не все, але він також доступний у 12 локаціях по всьому світу за доступною ціною.
Три найпоширеніші виправлення для запуску MongoDB
Не існує абсолютного способу одночасно розпізнати точну проблему вашої системи з MongoDB і виправити її одним легким кроком. Ось кілька поширених виправлень, які ви можете спробувати, щоб MongoDB почав працювати.
- Помилка відступу конфігурації YAML. Припустимо, ви редагували /etc/mongod.conf перевірте відступ, виконавши sudo nano /etc/mongod.conf. Файл YAML чутливий до пробілів, тому переконайтеся, що на кожному рівні вкладення ровно два пробіли /etc/mongod.conf.
- Зайнятий порт 27017. Якщо порт 27017 використовує щось інше, зупиніть це або змініть порт MongoDB у mongod.conf. Якщо ви не впевнені, що запущено на порту 27017, спробуйте sudo ss -lntp | grep 27017 перевірити це
- Проблема з дозволами в директорії даних. Іноді MongoDB не має дозволу на запуск у вашій системі і тому взагалі не стартує. Спочатку виконайте sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, потім перезапустіть MongoDB за допомогою sudo systemctl restart mongod
Відповідно до Офіційний вебсайт MongoDB, інший спосіб вирішити цю проблему — перезавантажити демон sudo systemctl daemon-reload, а потім виконати першу команду sudo systemctl start mongod, знову.
Якщо немає mongod.service, встановлення не розмістило systemd unit, тому перевстановіть mongodb-org набір пакетів
За всим цим ви можете перевірити, чи успішно стартував MongoDB sudo systemctl status mongod. Якщо в терміналі написано активний (запущено), то все добре. Але є ще кілька налаштувань, які зроблять вашу роботу набагато зручнішою.
Автоматизуйте MongoDB
MongoDB не запускається автоматично при кожному включенні сервера, тому вам доведеться повторювати деякі кроки кожен раз. За бажанням ви можете наказати Ubuntu запускати MongoDB після завантаження системи.
Просто запустіть sudo systemctl enable mongod у терміналі, і від цього моменту ваша система буде запускати MongoDB після кожного перезавантаження. Крім того, ви можете перезапустити mongod виконайте команду sudo systemctl restart mongod. Крім того, вам може знадобитися перевірити результати в файлі, щоб дізнатися про помилки або важливі повідомлення:
/var/log/mongodb/mongod.log
Тепер, коли все налаштовано, давайте почнемо працювати з mongod.
Відкриття оболонки MongoDB
Щоб працювати з базою даних, вам потрібно відкрити оболонку MongoDB, виконавши команду mongosh. Уявіть це як окремий командний термінал для MongoDB або консоль MySQL. Ви також можете взаємодіяти з MongoDB через графічні інструменти, наприклад драйвери MongoDB. Але якщо ви хочете працювати з ним з терміналу, mongosh це все, що вам потрібно.
Ваш MongoDB тепер повністю функціональний, але ви повинні виконати кілька додаткових кроків для його захисту.
Включіть автентифікацію для MongoDB
MongoDB за замовчуванням не має захисту паролем, тому що для створення користувача необхідний прямий доступ. Ось простий спосіб це налаштувати
Створіть користувача-адміністратора
Спочатку перейдіть до бази даних admin командою:
use admin
Потім створіть користувача командою db.createUser({…}). Заповніть
- Ім'я користувача
- Пароль
- Роль
Для ролі введіть root що означає повний контроль або адміністративні права.
Увімкнути автентифікацію
Тепер, коли користувача налаштовано, вам потрібно відредагувати /etc/mongod.conf файл. Це важливо, тому що він контролює поведінку MongoDB. Пам'ятайте, що після редагування цього файлу ви повинні перезапустити mongod сервіс командою sudo systemctl restart mongod. Нам потрібно змінити один параметр під назвою authorization, який виглядає так:
security:
authorization:
Щоб завершити процес автентифікації, просто змініть значення authorization таким чином:
security:
authorization: enabled
Тепер MongoDB потребуватиме входу, тому автентифікацію завершено. Давайте перейдемо до наступного налаштування, яке дасть найповніший контроль над MongoDB.
Відкрийте портам у брандмауері
Як згадувалося раніше, MongoDB працює на порту 27017. Оскільки брандмауери блокують порти за замовчуванням, вам потрібно дозволити додаткам запускатися на порту 27017. Для цього просто виконайте команду:
ufw allow from YOUR_IP to any port 27017
Крім того, ви можете виконати команду ufw allow 27017, але будьте обережні, адже це дозволить всьому інтернету отримати доступ до цього порту. Найбезпечніше залишитися при першому варіанті, оскільки він дозволяє трафіку доступатися до порту тільки з вашої IP-адреси.
Користувачі можуть зіткнутися з проблемами при запуску MongoDB, наприклад з проблемою віддаленого доступу. Залишайтеся з нами, щоб дізнатися, як це виправити.
Проблема віддаленого доступу
MongoDB запускається з bindIp. bindIp обмежує MongoDB на 127.0.0.1, що дозволяє тільки локальні з'єднання. Тому якщо ви спробуєте підключитися до свого сервера MongoDB звідкись ще, вам буде заборонено доступ, оскільки MongoDB за замовчуванням налаштований на дозвіл тільки локальних з'єднань, якщо не налаштовано інакше.
Знову ж таки, перейдіть до /etc/mongod.conf, і ви побачите три рядки на кшталт цього:
net:
port: 27017
bindIp: 127.0.0.1
Якщо ви хочете дозволити віддалені з'єднання до вашого mongod користувача, змініть наведені вище значення так:
net:
port: 27017
bindIp: 0.0.0.0
Після цього перезавантажте ваш mongod послуга з sudo systemctl restart mongod як при будь-якому іншому редагуванні файлу.
Тепер ви надали своєму mongod сервісу дозвіл приймати віддалені з'єднання. Але будьте обережні, адже це відкриє вашу базу даних усьому інтернету, якщо ви ще не автентифікували свого mongod користувача. Існує безліч ботів, які постійно сканують відкриті порти MongoDB, тому завжди переконайтеся, що ваш користувач mongod має пароль.
Загальний огляд
Вітаємо, ви зробили все необхідне для створення оптимізованого сервісу MongoDB для вашої системи Ubuntu. Ось також схема, щоб відстежити кожен крок, представлений у цій статті.
| Команда | Що це робить |
| apt оновити | Оновити список програм |
| встановлення apt | Встановити програмне забезпечення |
| curl | Завантажити файл |
| gpg | Керувати ключами шифрування |
| echo | Друкувати текст |
| футболка | Записати в захищений файл |
| systemctl start | Запустити сервіс |
| systemctl enable | Запуск при завантаженні |
| systemctl стан | Перевірити сервіс |
| mongosh | Запустити оболонку MongoDB |
| Редагувати /etc/mongod.conf | Увімкнути автентифікацію |
| ufw | Керування брандмауером |
| bindIp | Дозволити віддалений доступ |
Це повинно допомогти вам краще зрозуміти весь процес. Але якщо самостійне налаштування MongoDB для вас надто складне, не забудьте запустити MongoDB VPS для вашого приватного сервера Ubuntu 24.04 LTS з попередньо встановленим MongoDB.
Він поставляється з 99.95% uptime, 24/7 підтримка, та 14-денний гарантія повернення коштів. Крім того, він підтримує до 40 Gbps пропускної спроможності завдяки його DDR5 RAM та сховище NVMe SSD сховищу. Не хвилюйтеся про місце вашого проживання — це також доступно в 12 локаціях по всьому світу за доступною ціною.
Але після всього цього ви нарешті встановили власний повнофункціональний сервіс MongoDB з усіма необхідними налаштуваннями для виробничих навантажень і бізнесу.