В этом блоге мы говорили о некоторых системах баз данных, среди которых наиболее популярными являются MariaDB и MySQL, поскольку они обычно входят в состав Xampp или Lampp. На этот раз мы поговорим о другая система, которая MongoDB.
MongoDB - это система баз данных NoSQL с открытым исходным кодом, ориентированная на документы, Это современная система управления базой данных документов, разработанная для высокопроизводительного сохранения данных, высокая доступность, а также автоматическое масштабирование, основанное на технологии техники NoSQL.
Вместо сохранения данных в таблицах, как это делается в реляционных базах данных, MongoDB сохраняет структуры данных в документе., который представляет собой структуру данных, состоящую из пар полей и значений (документы MongoDB сопоставимы с объектами JSON).
Поскольку он обеспечивает высокую производительность и отличные характеристики масштабируемости, он используется для создания современных приложений, которым требуются мощные, критически важные и высокодоступные базы данных.
Установка MongoDB в Ubuntu
Чтобы установить эту систему баз данных в нашей системе, Нам нужно только открыть терминал и выполнить в нем следующую команду:
sudo apt install mongodb
Установка завершена, Сервис MongoDB запустится автоматически через systemd и процесс будет запущен на порту 27017. Вы можете проверить его статус с помощью команды:
sudo systemctl status mongodb
Если нет, мы можем запустить принудительный запуск с помощью этой команды:
sudo systemctl start mongodb
Включение удаленных подключений к MongoDB
Система базы данных MongoDB по умолчанию использует порт 27017, который мы должны открыть. Чтобы принимать удаленные подключения, мы включаем его только с помощью следующей команды.
sudo ufw allow 27017
По умолчанию к порту 27017 можно получить доступ только с локального адреса 127.0.0.1. Чтобы разрешить удаленные подключения к MongoDB, необходимо добавить IP-адрес сервера в файл /etc/mongodb.conf
Просто отредактируйте его:
sudo nano
И мы можем увидеть что-то похожее на это:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Которые мы редактируем с данными с нашего сервера.
Предоставляя доступ к MongoDB отовсюду, он дает неограниченный доступ к данным в базе данных. Поэтому лучше предоставить доступ к IP-адресу по умолчанию для конкретного местоположения порта MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Как только это будет сделано, достаточно перезапустить службу, чтобы новые изменения загружались в начале, мы делаем это с помощью:
sudo systemctl restart mongodb
Создайте пользователя в MongoDB с паролем
По умолчанию база данных имеет довольно простой доступ, поэтому для усиления этого мы можем создать пользователя с паролем.
MongoDB использует механизм аутентификации SCRAM. по умолчанию. Использование SCRAM в системе проверяет предоставленные учетные данные пользователя на соответствие имени пользователя, паролю и базе данных аутентификации.
Просто запустите консоль базы данных с помощью следующей команды:
Mongo
Мы можем составить список существующих баз данных с помощью:
show dbs
Мы можем создать пользователя, который позволит нам управлять пользователями и функциями. такие как создание пользователей, предоставление или отзыв ролей пользователей, а также создание или изменение таможенных ролей.
Просто введите
use admin
И мы создаем пользователя с помощью следующей команды, где мы заменяем имя пользователя «root» и пароль «password» на учетные данные доступа, которые мы считаем подходящими.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Как только это будет сделано, мы должны включить метод аутентификации. для этого мы собираемся отредактировать следующий файл:
sudo nano /lib/systemd/system/mongodb.service
И будем искать следующую строчку:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
И отредактируйте так, чтобы он выглядел следующим образом:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Сейчас просто перезагружаемся в базе
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Мы тестируем метод аутентификации с помощью:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Помогите мне с этой ОШИБКОЙ.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] Ошибка: listDatabases failed: {
«Хорошо»: 0,
"Errmsg": "администратор не авторизован для выполнения команды {listDatabases: 1.0, $ db: \" admin \ "}",
«Код»: 13,
«CodeName»: «Неавторизованный»
}:
_getErrorWithCode@src/mongo/shell/utils.js: 25:13
Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
shellHelper.show@src/mongo/shell/utils.js: 816: 19
shellHelper@src/mongo/shell/utils.js: 706: 15
@ (shellhelp2): 1: 1