- Руководство по MongoDB Linux
- Создадим пользователя admin и пользователей с ограниченными правами
- Установка и подключение к MongoDB
- Установка
- Доступ по сети
- Аутентификация
- Примеры подключения из языков программирования
- linux-notes.org
- Установка MongoDB в Unix/Linux
- Установка MongoDB на Debian
- Установка MongoDB на Ubuntu
- Установка MongoDB на CentOS/Fedora/RedHat
- Установка MongoDB на Mac OS X
- Установка MongoDB на другие Unix/Linux
- Добавить комментарий Отменить ответ
Руководство по MongoDB Linux
Устанавливаем MongoDB из стандартного репозитория
Данные mongodb по умолчанию будет хранить в каталоге /var/lib/mongodb
Логи — в каталоге — /var/log/mongodb
Заходим в 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)
Рассмотри примеры и убедимся в том, что синтаксис очень схож.
JSON:
<
«firstName»:»Andrey»,
«lastName»: «Ivanov»
«Age»: 25
>
JavaScript:
firstname = «Andrey»;
lastName = «Ivanov»;
Age = 25
BSON:
USER COLLECTION
<
_id:ObjectId(«7678sd6fsdfbhw367er3»),
«firstName»:»Andrey»,
«lastName»: «Ivanov»
«Age»: 25,
«projects:[«Project A», «Project B», «Project C»]»
«addresses»: [
<
street: «123 Lunacharskogo st»
city: «Yekaterinburg»,
state: «Sverdlovskaya oblast»
>,
<
street: «4568 Sadovaya st»
city: «Moscow»,
state: «Central region»
>
]
>,
<
_id:ObjectId(«7678s7826fsdfbhw367er3»),
«firstName»:»Nikolay»,
«lastName»: «Petrov»
«Age»: 54
>;
Таким образом, заметно основное отличие нереляционных БД. Определенные элементы могут иметь признаки, которых другие элементы той же таблицы не имеют. В MySQL потребовалось бы создавать ряды и колонки для адреса и проектов, в Монго это не требуется.
Выводим всех пользователей, существующих в документах — элементах БД
Создадим пользователя admin и пользователей с ограниченными правами
Переходим в каталог, в который установлен пакет
Заходим в консоль СУБД
Даем указание на необходимость использования базы
switched to db admin
И создаем пользователя с правами userAdminAnyDatabase
Добавляем другого пользователя
Просматриваем существующие базы
Инициализируем базу people (команда создает базу при первой к ней обращению, что аналогично CREATE DATABASE people в MySQL)
Добавляем пользователя с правами на чтение и запись
Successfully added user:
Таким образом мы установили пакет, авторизовались в консоли, создали первые базы данных, а также пользователей, одного с безграничным доступом ко всем базам, другого с доступом на чтение и запись
В следующей статье цикла рассматриваются понятия «документа» и «коллекции» в MongoDB
Источник
Установка и подключение к MongoDB
В данной инструкции мы рассмотрим процесс установки MongoDB на Linux Ubuntu (Debian). Также будут приведены примеры настройки подключения по сети, защита соединения с помощью шифрования и аутентификации.
Установка
На странице MongoDB Community Downloads смотрим стабильные версии программного продукта. На момент обновления инструкции это была 4.4.
Обратите внимание, установка MongoDB возможна на большое число популярных операционных систем — Amazon, Debian, Ubuntu, macOS, CentOS, Red Hat, Windows и другие.
Переходим на страницу загрузки ключей для проверки подлинности репозитория. Копируем ссылку для версии MongoDB, которую мы планируем установить:
* в данном примере мы скопировали ссылку на ключ для версии 4.4. Обратите внимание, что также есть возможность загрузки ключей для более свежих и менее стабильных версий.
С помощью скопированной ссылки скачиваем и устанавливаем ключ:
wget -qO — https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add —
Создаем файл для настройки репозитория Ubuntu:
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
* focal — название релиза Ubuntu. В данном примере, версия 20.04. На данный момент возможны варианты:
- focal: 20.04.
- bionic: 18.04.
- xenial: 16.04.
Обновляем список пакетов:
apt-get install mongodb-org
Стартуем сервис и разрешаем его автозапуск:
systemctl start mongod
systemctl enable mongod
Для подключения к СУБД вводим команду:
Можно для проверки ввести команду, которая покажет созданные базы данных:
После первой установки мы должны увидеть следующее:
admin 0.000GB
config 0.000GB
local 0.000GB
В качестве примера работы мы можем попробовать создать новую базу данных и коллекцию. Объекты в MongoDB создаются автоматически при первом к ним обращении.
Для создания базы просто обращается к ней:
* в данном примере будут создана база newDB.
Для создания коллекции, выполняем команду на вставку данных:
Выходим из оболочки SQL:
Доступ по сети
По умолчанию к установленной базе можно подключиться только с локального компьютера. Рассмотрим процесс настройки сетевого доступа.
Для начала, откроем порт в брандмауэре:
iptables -I INPUT -p tcp —dport 27017 -j ACCEPT
* по умолчанию, MongoDB работает на TCP-порту 27017.
В системах на базе Ubuntu и Debian брандмауэр работает по принципу разрешения. Если мы не меняли данной настройки, то нам не обязательно создавать разрешающее правило для Mongo.
Открываем конфигурационный файл СУБД:
Находим директиву net и в ней опцию bindIp — добавляем IP-адрес, на котором наш сервер должен принимать запросы для MongoDB:
net:
port: 27017
bindIp: 127.0.0.1, 192.168.1.15
* в нашем примере мы добавили к 127.0.0.1 адрес 192.168.1.15 — это сетевой адрес нашего сервера, на котором он должен принимать запросы.
Перезапускаем сервис mongod:
systemctl restart mongod
Чтобы проверить подключение, на другом компьютере должен быть установлен клиент для подключения к Mongo. Процесс его установки схож с установкой сервера. Рассмотрим пример для Ubuntu.
Устанавливаем ключ для репозитория:
wget -qO — https://www.mongodb.org/static/pgp/server-4.4.asc | sudo apt-key add —
deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/4.4 multiverse
* как в случае с сервером, focal — название релиза Ubuntu. В данном примере, версия 20.04. Другие варианты: bionic: 18.04, xenial: 16.04.
Обновляем список пакетов:
Устанавливаем клиентскую часть:
apt-get install mongodb-org-shell
Теперь можно подключиться к нашему серверу:
* в данном примере мы подключаемся к серверу MongoDB 192.168.1.15.
Также мы можем использовать MongoDB Compass — это приложение под Windows, Linux и macOS для работы с базой Mongo в графическом интерфейсе. Скачать его можно на странице официального сайта.
Аутентификация
По умолчанию, мы можем подключиться к СУБД без авторизации. Если нам необходимо повысить безопасность работы с базой, можно требовать ввода логина и пароля.
Заходим в командную оболочку Mongo:
Подключаемся к базе admin:
Создаем пользователя, под которым будем авторизовываться:
* в данном примере мы создадим пользователя с правами доступа на все базы. Логин root, пароль будет запрошен после ввода.
Придумываем и вводим пароль
После создания пользователя мы должны увидеть, примерно, следующую картину:
Successfully added user: <
«user» : «root»,
«roles» : [
<
«role» : «userAdminAnyDatabase»,
«db» : «admin»
>,
«readWriteAnyDatabase»
]
>
Выходим из командной оболочки:
Открываем конфигурационный файл:
Находим директиву security и задаем параметр authorization:
security:
authorization: enabled
Перезапускаем сервис mongod:
systemctl restart mongod
Теперь пробуем подключиться к mongo. Мы можем авторизоваться несколькими способами.
а) Авторизация при подключении:
mongo —authenticationDatabase «admin» -u «root» -p
* в данном примере мы подключимся к базе под пользователем root. Пароль будет запрошен системой после ввода команды.
б) Авторизация после подключения:
Теперь усилим безопасность, зашифровав передачу данных. Для этого нам понадобиться сертификат. В нашем примере, мы будем использовать самоподписанный сертификат, но в продуктивной среде, лучше его купить или запросить у Let’s Encrypt.
Создаем каталог, в котором разместим наши сертификаты:
mkdir -p /etc/ssl/mongodb
Сгенерируем самоподписанный сертификат:
openssl req -new -x509 -days 1461 -nodes -out /etc/ssl/mongodb/cert.pem -keyout /etc/ssl/mongodb/cert.pem -subj «/C=RU/ST=SPb/L=SPb/O=Global Security/OU=IT Department/CN=mongo.dmosk.local/CN=mongo»
Выставим в качестве владельца на файлы сертификата пользователя mongodb:
chown mongodb:mongodb /etc/ssl/mongodb/cert.pem
Открываем конфигурационный файл СУБД:
В директиву net дописываем опции TLS:
net:
.
tls:
mode: requireTLS
certificateKeyFile: /etc/ssl/mongodb/cert.pem
* в данном примере мы указали необходимость шифрования данных при передаче, а также путь до сгенерированного нами сертификата.
Перезапускаем сервис mongod:
systemctl restart mongod
Для подключения к базе с использованием шифрования используем команду:
mongo —tls —tlsAllowInvalidCertificates
* в данном примере мы указываем при подключении использовать шифрование с использованием TLS. Опция tlsAllowInvalidCertificates говорит, что клиент должен принять неправильный сертификат (так как у нас он самоподписанный).
Так как у нас еще настроена аутентификация, для подключения введем такую команду:
mongo —tls —tlsAllowInvalidCertificates —authenticationDatabase «admin» -u «root» -p
Для подключения к нашему серверу по сети, полная команда будет такой:
mongo «mongodb://192.168.1.15:27017» —tls —tlsAllowInvalidCertificates —authenticationDatabase «admin» -u «root» -p
Примеры подключения из языков программирования
Рассмотрим небольшие примеры для подключения к MongoDB из языков программирования PHP и Python.
Для возможности работы PHP с Mongo необходимо установить соответствующее расширение. Выполняем пошагово следующие действия:
apt-get install php-pear php-dev
pecl channel-update pecl.php.net
pecl install mongodb
Для каждого возможного варианта использования PHP необходимо создать отдельный конфигурационной файл. В данном примере, под php 7.4 для cli, php-fpm, apache.
Источник
linux-notes.org
MongoDB (от англ. humongous — огромный) — документоориентированная система управления базами данных (СУБД) с открытым исходным кодом, не требующая описания схемы таблиц. Классифицирована как NoSQL, использует JSON-подобные документы и схему базы данных. Написана на языке C++.
Возможности MongoDB:
- Ad hoc запросы;
- Индексация;
- Репликация;
- Балансировка нагрузки;
- Файловое хранилище;
- Агрегация;
- Исполнение JavaScript на стороне сервера;
- Коллекции с фиксированным размером.
Установка MongoDB в Unix/Linux
Сейчас я приведу некоторые примеры по установки MongoDB для нескольких Unix/Linux ОС.
Установка MongoDB на Debian
И так, для начала, импортируем ключ:
Добавляем MongoDB репозиторий.
Если используете Debian 7 (Wheezy):
Или, если использовать интерпрайс версию:
Если используете Debian 8 (Jessie):
Или, если использовать интерпрайс версию:
Вы можете установить последнюю стабильную версию MongoDB:
ИЛИ, для установки интерпрайса:
Т.к дебиан после установки, сразу запускает службы, нам нужно остановить сервер с монгой:
И запускаем сново:
Добавляем сервер в автозагрузку ОС:
Удаление MongoDB сервера
ИЛИ, если хотите удалить enterprise:
Удалите базы данных и лог-файлов:
Собственно, вот и вся установка\удаление MongoDB.
Установка MongoDB на Ubuntu
И так, для начала, импортируем ключ:
Добавляем MongoDB репозиторий.
Если используете Ubuntu 12.04:
Или, если использовать интерпрайс версию:
Если используете Ubuntu 14.04:
Или, если использовать интерпрайс версию:
Если используете Ubuntu 16.04:
Или, если использовать интерпрайс версию:
Вы можете установить последнюю стабильную версию MongoDB:
ИЛИ, для установки enterprise версии:
Добавляем сервер в автозагрузку ОС:
Удаление MongoDB сервера
ИЛИ, для удалении enterprise версии:
Удалите базы данных и лог-файлов:
Собственно, вот и вся установка\удаление MongoDB.
Установка MongoDB на CentOS/Fedora/RedHat
Создаем файл с репозиотрием:
ИЛИ, enterprise вариант:
И, выполняем установку:
Для установки интерпрайса, используем:
PS: Если используется SELinux, то нужно его настроить для работы с монгой:
Так же, можно выключить его, я описывал как это можно сделать:
Как отключить SELinux на CentOS?
После чего, запускаем сервер:
Чтобы добавить службу в автозагрузку, используем команду:
Удаление MongoDB сервера
Удалите базы данных и лог-файлов:
Собственно, вот и вся установка\удаление MongoDB.
Установка MongoDB на Mac OS X
Подключаем homebrew — Установка homebrew на Mac OS X и после чего, выполняем поиск пакета:
И, выполняем установку:
Чтобы установить монгу с поддержкой TLS/SSL, используем:
Чтобы установить последнюю версию ( которая находиться в тестировании), введите следующую команду:
Создаем папку для хранения БД (путь используется по умолчанию):
Для запуска, выполняем:
Если вы не используете каталог данных по умолчанию (т. е. /data/db), укажите путь к каталогу данных с помощью параметра —dbpath:
Установка MongoDB на другие Unix/Linux
Скачиваем последнюю версию утилиты:
Создаем папку для хранения БД (путь используется по умолчанию):
Для запуска, выполняем:
Если вы не используете каталог данных по умолчанию (т. е. /data/db), укажите путь к каталогу данных с помощью параметра —dbpath:
PS: Если хотите установить enterprise, то действия такие же.
На этом, у меня все. Статья «Установка MongoDB в Unix/Linux» завершена.
Добавить комментарий Отменить ответ
Этот сайт использует Akismet для борьбы со спамом. Узнайте, как обрабатываются ваши данные комментариев.
Источник