Отже, ви вирішили використовувати MongoDB, чудово alternative to MariaDB для створення стекової програми MERN, аналітичної платформи чи будь-якої системи на основі документів, але натрапили на стіну через старі добрі командні рядки Linux і незліченну кількість помилок терміналу.
Однак не хвилюйтеся, оскільки цей посібник містить усе, що вам потрібно знати від А до Я, щоб встановити MongoDB на Ubuntu.
MongoDB використовує X.Y.Z версії. 8.0 є a майор випуск серії, і 8.2 є a другорядний випуск протягом цього циклу 8.0. Незначні випуски додають функції в рамках того самого основного циклу та, починаючи з 8.0, також пропонуються для локальних установок для конкретних випадків використання (наприклад, пошук і векторний пошук). Підтримується MongoDB 8.0 на Ubuntu 24.04 (Шляхетний), 22.04 (Джеммі) і 20.04 (Фокальний) на 64-розрядних системах із підтримкою ARM64 на деяких платформах.
GnuPG і Curl передумови
Перед установкою офіц mongodb-org Ubuntu вимагає двох умов: GnuPG і Локон. Ці інструменти дають Ubuntu дозвіл на завантаження MongoDB, оскільки Ubuntu є власним mongodb пакет не підтримується MongoDB Inc. і конфліктує з офіційним mongodb-org пакет. Якщо ви вже встановили mongodb обов’язково видаліть його.
Далі виконайте команду sudo apt-get install gnupg curl. Curl — це інструмент для завантаження файлів з Інтернету, який потрібен для отримання ключа безпеки MongoDB. GnuPG — це те, що Ubuntu використовує для перевірки автентичності програмного забезпечення. Якщо GnuPG відсутній, Ubuntu не зможе перевірити пакети MongoDB.
Переконайтеся, що ваш термінал успішно встановив GnuPG і Curl. Якщо так, це має виглядати так:
Імпорт ключа MongoDB GPG
Менеджер пакетів 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
- – коханий перетворює ключ із текстового формату на двійковий для розуміння 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 і замість цього використовуєте apt-ключ sudo тому що сучасна Ubuntu не рекомендує цього.
Додайте репозиторій MongoDB
Додавання репозиторію MongoDB створює файл, який повідомляє Ubuntu, що пакети MongoDB активні за певною адресою в Інтернеті. Створіть файл списку за адресою /etc/apt/sources.list.d/mongodb-org-8.0.list записавши в нього рядок сховища за допомогою відлуння … | 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 на вашому терміналі.
Це може виглядати заплутаним, але не хвилюйтеся. Щойно ми розіб’ємо команду на частини, вона стане кришталево зрозумілою.
- луна друкує текст
- /etc/apt/sources.list.d це папка, у якій Ubuntu зберігає визначення джерел програмного забезпечення. Кожен файл з .list формат у папці вказує Ubuntu на певне місце для завантаження програмного забезпечення
- Ви не можете нічого писати в системні папки за замовчуванням як звичайний користувач. трійник надає користувачеві спеціальний дозвіл записувати текст у системні файли під час використання sudo
- шляхетний це кодова назва для Ubuntu 24.04. Кожна версія Ubuntu має кодову назву на зразок:
| Версія | Кодове ім'я |
| 20.04 | Осередковий |
| 22.04 | Джеммі |
| 24.04 | Шляхетний |
Якщо ваша версія Ubuntu не відповідає правильному командному рядку, Ubuntu не розпізнає репозиторій MongoDB.
Ubuntu 22.04 (Jammy)
Додавання файлу списку до 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 (Focal)
Виконайте ті самі кроки тут, але замість шляхетний or варення, вкласти осередковий:
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’s Ubuntu VPS для чистого досвіду на вашому власному приватному сервері з дистрибутивом Ubuntu на ваш смак. Він поставляється з 24/7 підтримки і до 40Gbps швидкість мережі, завдяки своїй NVMe SSD і Оперативна пам'ять DDR5 зберігання.
Крім того, він має мінімальну затримку, 99.95% час безвідмовної роботи та a 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 перезапустіть mongod
Відповідно до Офіційний сайт MongoDB, ще один спосіб вирішити цю проблему — перезавантажити демон за допомогою sudo systemctl daemon-reloadі запустіть першу команду, sudo systemctl запустити mongod, знову.
Якщо немає mongod.service, інсталяція не розмістила блок systemd, тому перевстановіть mongodb-org набір пакетів.
З огляду на все сказане, ви можете перевірити, чи успішно запущено MongoDB sudo systemctl status mongod. Якщо термінал говорить активний (працює), все готово. Але є ще деякі додаткові конфігурації, які роблять вашу роботу набагато зручнішою.
Зробіть MongoDB автоматизованим
MongoDB не відкривається автоматично кожного разу, коли ви вмикаєте сервер; вам доведеться кожного разу повторювати деякі зі згаданих кроків. Крім того, ви можете наказати Ubuntu запускати MongoDB після завантаження робочого столу.
Просто біжіть sudo systemctl увімкнути mongod на вашому терміналі, який відтепер повідомлятиме вашій системі запускати MongoDB після кожного перезавантаження. Крім того, ви можете перезапустити mongod процес, видавши команду sudo systemctl перезапустіть mongod. Крім того, користувачам може знадобитися виконати процес для виявлення будь-яких помилок або важливих повідомлень, переглянувши вихідні дані у файлі:
/var/log/mongodb/mongod.log
Тепер, коли все налаштовано, давайте почнемо використовувати ваш mongod.
Відкриття оболонки MongoDB
Щоб взаємодіяти зі своєю базою даних, користувачі повинні відкрити оболонку MongoDB, виконавши команду монгош. Подумайте про це як про спеціальний термінал командного рядка для MongoDB або консолі MySQL. Крім того, ви можете взаємодіяти з MongoDB за допомогою інструментів GUI, таких як драйвери MongoDB. Але якщо ви хочете взаємодіяти з ним із терміналу, монгош зроблено, щоб це сталося.
Ваша MongoDB тепер буде повністю функціональною, але ви повинні врахувати деякі додаткові кроки, щоб зробити її безпечною.
Зробіть MongoDB Authenticated
MongoDB за замовчуванням не має захисту паролем, оскільки ви вже повинні мати доступ, щоб створити користувача. Ось простий спосіб це зробити
Створіть користувача адміністратора
Спочатку вам потрібно перейти до бази даних адміністратора за допомогою:
use admin
Потім створіть користувача з db.createUser({…}). Заповніть його своїм
- Ім'я користувача
- Пароль
- Роль
Для амплуа бажано типу корінь що означає повний контроль або адмін.
Увімкнути автентифікацію
Тепер, коли ми налаштували власного користувача, нам потрібно відредагувати /etc/mongod.conf файл. Це тому, що цей файл контролює поведінку MongoDB. Але майте на увазі, що редагуючи файл, ви повинні завжди перезапускати mongod служба після с 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 запускається з 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 перезапустіть mongod як і будь-яке інше редагування файлу.
Тепер ви надали своє mongod дозвіл служби приймати віддалені підключення. Але будьте обережні, оскільки, роблячи це, ви відкриєте свою базу даних для всього Інтернету, якщо ви ще не автентифікували свою mongod користувача. Є багато ботів, які постійно шукають відкриті порти MongoDB, тому завжди переконайтеся, що ваш користувач mongod має пароль.
Підсумок великої картини
Вітаємо, тепер ви зробили все, щоб створити оптимізовану службу MongoDB для вашої системи Ubuntu. Ось також ментальна карта, щоб відстежувати кожен крок, представлений у цій статті.
| Команда | Що це робить |
| вдале оновлення | Оновити список програмного забезпечення |
| вдале встановлення | Встановити програмне забезпечення |
| завиток | Завантажити файл |
| gpg | Керуйте ключами шифрування |
| луна | Роздрукувати текст |
| трійник | Записати в захищений файл |
| запуск systemctl | Запустити службу |
| systemctl увімкнути | Почати під час завантаження |
| статус systemctl | Перевірити сервіс |
| монгош | Увійдіть у оболонку MongoDB |
| Редагувати /etc/mongod.conf | Увімкнути автентифікацію |
| ufw | Керувати брандмауером |
| bindIp | Дозволити віддалений доступ |
Це повинно допомогти вам краще зрозуміти весь процес. Але якщо самостійно налаштувати MongoDB для вас занадто багато, обов’язково розкрутіть Cloudzy’s MongoDB VPS для вашого власного приватного сервера Ubuntu 24.04 LTS із попередньо встановленим MongoDB.
Він поставляється з 99.95% час роботи, 24/7 підтримка та a 14-денний гарантія повернення грошей. Крім того, він підтримує до 40 Gbps пропускної здатності завдяки своїй Оперативна пам'ять DDR5 і NVMe SSD зберігання. Навіть не турбуйтеся про те, де ви живете, адже це також доступно в 12 місцях по всьому світу за доступною ціною.
Але, зважаючи на все сказане, вам нарешті вдалося налаштувати власну потужну службу MongoDB, оснащену всіма конфігураціями для підтримки робочих навантажень і бізнесу на виробничому рівні.