В този блог говорихме за някои системи за бази данни, сред които най-популярни са 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 ЗАПИТВАНЕ [thread1] Грешка: listDatabases не успя: {
«Добре»: 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