MongoDB является документо-ориентированной NoSQL базой данных со свободным, открытым исходным кодом, которая известна своей высокой производительностью. MongoDB написана на C ++ и сохраняет свои данные в формате JSON под названием BSON или Binary JSON. Она была создана в 2009 году и в настоящее время разрабатывается MongoDB Inc.
В этой статье мы установим MongoDB на Ubuntu 16.04.
Требования:
- Сервер на Ubuntu 16.04 – 64 бит
- Пользователь root или не корневой пользователь sudo
Добавление официального репозитория MongoDB
Для обеспечения достоверности пакетов Ubuntu, нужно чтобы они были подписаны с ключами GPG.
Давайте начнем с импортом ключей GPG, которые нам нужны для официального репозитория MongoDB:
# sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
Затем добавьте репозиторий MongoDB в /etc/apt/sources.list.d с помощью этой команды:
# echo "deb http://repo.mongodb.org/apt/ubuntu "$(lsb_release -sc)"/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
А затем выполните команду обновления, так Ubuntu может прочитать пакеты из добавляемого хранилища:
# sudo apt-get update
Установка MongoDB
Для того, чтобы начать установку MongoDB из хранилища, которое мы только что добавили, мы выполним команду:
# sudo apt-get install -y mongodb-org
Хотя хранилище MongoDB теперь предоставляет блок файлов в пакете, мы оставили эту часть статьи для образовательных целей, она может быть использована для установки других услуг.
Теперь нам нужно создать файл Systemd для MongoDB. Во-первых, давайте кратко объясним, какие файлы в Systemd. файлы Unit хранят информацию об услугах, сокетов, устройств, в основном, любой ресурс, управляемый Systemd, который является системой инициализации и используется большинством дистрибутивов Linux.
Создайте файл в каталоге /etc/systemd/system/ с использованием nano:
# sudo nano /etc/systemd/system/mongodb.service
Вставьте следующий текст ниже:
[Unit] Description=High-performance, schema-free document-oriented database After=network.target Documentation=https://docs.mongodb.org/manual [Service] User=mongodb Group=mongodb ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf [Install] WantedBy=multi-user.target
Убедитесь в том, чтобы сохранить (нажмите Ctrl + O) и закрыть файл (нажмите Ctrl + X).
Теперь мы должны обновить Systemd и включить нашу вновь созданную службу и запустить службу:
# sudo systemctl daemon-reload # sudo systemctl enable mongod # sudo systemctl start mongod
Проверьте, что служба запущена:
# systemctl status mongod
Вывод должен выглядеть следующим образом:
● mongodb.service - High-performance, schema-free document-oriented database Loaded: loaded (/lib/systemd/system/mongod.service; enabled; vendor preset: enabled) Active: active (running) since Thu 2017-07-13 18:21:23 CDT; 7s ago Docs: https://docs.mongodb.org/manual Main PID: 3977 (mongod) CGroup: /system.slice/mongodb.service └─3977 /usr/bin/mongod --quiet --config /etc/mongod.conf Jul 13 18:21:23 test systemd[1]: Started High-performance, schema-free document-oriented database.
Настройка MongoDB от имени администратора
Чтобы настроить имя пользователя и пароль администратора в MongoDB, сначала нужно открыть оболочку MongoDB, введите:
# mongo
Внутри оболочки MongoDB введите следующую команду, чтобы перейти в базу данных администратора:
> use admin
Теперь давайте создадим имя администратора и установим пароль для пользователя:
> db.createUser({user:"admin", pwd:"admin54321-", roles:[{role:"root", db:"admin"}]})
Вывод из выше команд должен выглядеть следующим образом :
Successfully added user: { "user" : "admin", "roles" : [ { "role" : "root", "db" : "admin" } ] }
Введите эту команду в оболочке для выхода из оболочки:
> exit
Включение проверки подлинности MongoDB
Откройте /lib/systemd/system/mongod.service с помощью nano или любого удобного вам редактора:
# sudo nano /lib/systemd/system/mongod.service
На линии ExecStart добавьте новый аргумент -auth, строка должна выглядеть следующим образом:
ExecStart=/usr/bin/mongod --quiet --auth --config /etc/mongod.conf
Убедитесь в том, чтобы сохранить (нажмите Ctrl + O) и закрыть файл (нажмите Ctrl + X).
Перезапустите Systemd, чтобы включить новую версию нашего измененного файла службы:
# sudo systemctl daemon-reload
Затем перезапустите MongoDB, чтобы изменения вступили в силу:
# sudo systemctl restart mongod
Теперь подключитесь к оболочки MongoDB с помощью этой команды:
# mongo -u admin -p --authenticationDatabase admin
Вы получите запрос на ввод пароля, введите пароль, установленный выше.
После того, как вы внутри оболочки убедитесь, сделав проверку подлинности администратора, который мы создали, выполните эту команду:
> db.runCommand({connectionStatus : 1})
Вывод должен выглядеть следующим образом:
{ "authInfo" : { "authenticatedUsers" : [ { "user" : "admin", "db" : "admin" } ], "authenticatedUserRoles" : [ { "role" : "root", "db" : "admin" } ] }, "ok" : 1 }
Вот и все, вы успешно установили MongoDB на Ubuntu 16.04.