У цьому блозі ми говорили про деякі системи баз даних, серед яких найпопулярнішими є 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" та пароль "пароль" на crecenciales доступу, які ми вважаємо за доцільні.
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 ЗАПИТ [помилка1] Помилка: не вдалося виконати список баз даних: {
«Добре»: 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