Установка и настройка СУБД MongoDB
MongoDB — одна из самых распространенных нереляционных систем управления базами данных, работает под Linux. В основе Mongo лежит «Документ», в то время как в основе самой распространенной реляционный СУБД MySQL лежат столбцы и колонки.
Установка MongoDB
Устанавливаем MongoDB из стандартного репозитория
apt-get update
apt-get install mongodb
Данные mongodb по умолчанию будет хранить в каталоге /var/lib/mongodb Логи — в каталоге — /var/log/mongodb
Также, для работы MongoDB необходимо создать директорию /data/db, которая не создается при установке:
Далее нужно назначить пользователя mongodb владельцем каталога:
Стартуем сервис
systemctl start mongodb
*По умолчанию сервис должен быть запущен, чтобы проверить его статус, введите:
systemctl status mongodb
Вывод:
Заходим в mongo
mongo
Welcome to the MongoDB shell. For interactive help, type «help». For more comprehensive documentation, see http://docs.mongodb.org/ Questions? Try the support group http://groups.google.com/group/mongodb-user >
СУБД используем BSON — своеобразную интерпретацию JSON (JavaScript Object Notation)
Рассмотрим примеры и убедимся в том, что синтаксис очень схож. JavaScript:
BSON:
Таким образом, заметно основное отличие реляционных БД.
Определенные элементы могут иметь признаки, которых другие элементы той же таблицы не имеют. В MySQL потребовалось бы создавать ряды и колонки для адреса и проектов, в Mongodb это не нужно.
>use admin
>db.getUsers()
Выводим всех пользователей, существующих в документах — элементах БД
Поскольку в данный момент пользователей нет, вывода также не будет.
Создадим пользователя admin и пользователей с ограниченными правами для MongoDB Linux
Заходим в консоль СУБД
mongo
Даем указание на необходимость использования базы
>use admin
switched to db admin
Создадим пользователя с правами "userAdminAnyDatabase".Чтобы создать пользователя, введите:
Где:
username — имя пользователя,
password — пароль.
Теперь мы можем проверить список пользователей в БД admin:
>db.getUsers()
Создаем новую базу
Чтобы создать новую базу данных, введите команду:
Вместо database введите название базы данных.
Создадим базу данных people:
use people
Если БД с таким названием уже существует, вы переключитесь на работу с ней.
Как узнать, с какой базой данных идёт работа:
Чтобы увидеть список баз данных:
Добавляем другого пользователя
Добавляем пользователя с правами на чтение и запись
Где:
username — имя пользователя,
password — пароль.
Включаем авторизацию
По умолчанию вход в СУБД разрешен без пароля, для того чтобы обезопасить ваши базы данных нужно включить функцию авторизации.
Открываем конфигурационный файл:
nano /etc/mongodb.conf
Находим директиву security и задаем параметр authorization (либо добавляем директиву при её отсутствии):
security:
authorization: enabled
Перезапускаем сервис mongodb:
systemctl restart mongodb
Теперь пробуем подключиться к mongo. Мы можем авторизоваться несколькими способами.
а) Авторизация при подключении:
mongo --authenticationDatabase "admin" -u "gutovad" -p
* в данном примере мы подключимся к базе под пользователем gutovad. Пароль будет запрошен системой после ввода команды. Также, после опции -p можно указать пароль в кавычках, например, -p "P@ssw0rd", таким образом пароль не будет запрашиваться системой.
б) Авторизация после подключения:
> use admin
> db.auth("root", passwordPrompt())
Недостатки СУБД MongoDB
В сравнении с реляционными базами данных, MongoDB имеет не только преимущества, но и недостатки. Вот основные из них:
Сложность работы с транзакциями.
Меньшее соответствие требованиям к транзакционным системам (ACID — атомарность, согласованность, изолированность, прочность), чем реляционные БД.
Таким образом мы установили пакет, авторизовались в консоли, создали первые базы данных, а также пользователей, одного с безграничным доступом ко всем базам, другого с доступом на чтение и запись.
Сравнение MongoDB и MySQL в зависимости от задач:
Last updated