Na tym blogu rozmawialiśmy o niektórych systemach bazodanowych, wśród których najpopularniejsze to MariaDB i MySQL, ponieważ są to systemy, które zwykle są zawarte w Xampp lub Lampp. Tym razem będziemy rozmawiać inny system, który jest MongoDB.
MongoDB jest zorientowany na dokumenty system baz danych NoSQL o otwartym kodzie źródłowym, To jest nowoczesny system zarządzania bazą danych dokumentów zaprojektowany z myślą o wysokiej wydajności utrwalania danych, wysoka dostępność, a także automatyczne skalowanie w oparciu o technologię techniki NoSQL.
Zamiast zapisywać dane w tabelach, jak ma to miejsce w relacyjnych bazach danych, MongoDB zapisuje struktury danych w dokumencie, która jest strukturą danych składającą się z par pól i wartości (dokumenty MongoDB są porównywalne z obiektami JSON).
Ponieważ zapewnia wysoką wydajność i doskonałe parametry skalowalności, jest używany do tworzenia nowoczesnych aplikacji wymagających potężnych, krytycznych i wysoce dostępnych baz danych.
Instalacja MongoDB na Ubuntu
Aby zainstalować ten system bazy danych w naszym systemie, Musimy tylko otworzyć terminal i wykonać w nim następujące polecenie:
sudo apt install mongodb
Instalacja zakończona, Usługa MongoDB uruchomi się automatycznie przez systemd a proces będzie działał na porcie 27017. Możesz sprawdzić jego stan za pomocą polecenia:
sudo systemctl status mongodb
Jeśli nie, możemy wymusić start za pomocą tego polecenia:
sudo systemctl start mongodb
Włączanie zdalnych połączeń z MongoDB
System bazy danych MongoDB domyślnie używa portu 27017, który musimy otworzyć Aby akceptować połączenia zdalne, włączamy je tylko za pomocą następującego polecenia.
sudo ufw allow 27017
Domyślnie dostęp do portu 27017 można uzyskać tylko z adresu lokalnego 127.0.0.1. Aby umożliwić zdalne połączenia z MongoDB, konieczne jest dodanie adresu IP serwera w pliku /etc/mongodb.conf
Po prostu edytuj go za pomocą:
sudo nano
I widzimy coś podobnego do tego:
bind_ip = 127.0.0.1, your_server_ip #port = 27,017
Które edytujemy danymi z naszego serwera.
Umożliwiając dostęp do MongoDB z dowolnego miejsca, daje nieograniczony dostęp do danych w bazie danych. Dlatego lepiej jest nadać dostęp do określonego dla lokalizacji domyślnego adresu IP portu MongoDB.
sudo ufw allow from your_server_IP/32 to any port 27017 sudo ufw status
Po wykonaniu tej czynności wystarczy zrestartować usługę, aby nowe zmiany zostały załadowane na początku, robimy to z:
sudo systemctl restart mongodb
Utwórz użytkownika w MongoDB z hasłem
Domyślnie baza danych ma dość prosty dostęp, więc aby to wzmocnić, możemy stworzyć użytkownika z hasłem.
MongoDB używa mechanizmu uwierzytelniania SCRAM domyślnie. Użycie SCRAM-u w systemie weryfikuje podane poświadczenia użytkownika z nazwą użytkownika, hasłem i bazą danych uwierzytelniania.
Po prostu uruchom konsolę bazy danych za pomocą następującego polecenia:
Mongo
Możemy sporządzić listę istniejących baz danych za pomocą:
show dbs
Możemy stworzyć użytkownika, który pozwoli nam zarządzać użytkownikami i funkcjami takich jak tworzenie użytkowników, nadawanie lub cofanie ról użytkowników oraz tworzenie lub modyfikowanie ról niestandardowych.
Po prostu wpisz
use admin
I tworzymy użytkownika za pomocą następującego polecenia, gdzie zastępujemy nazwę użytkownika „root” i hasło „hasło”, określeniami dostępu, które naszym zdaniem są odpowiednie.
db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})
Gdy to zrobisz, musimy włączyć metodę uwierzytelniania w tym celu zamierzamy edytować następujący plik:
sudo nano /lib/systemd/system/mongodb.service
I będziemy szukać następnej linii:
ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Oraz edytuj tak, aby wyglądało następująco:
ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS
Teraz po prostu uruchamiamy ponownie w bazie danych
systemctl daemon-reload sudo systemctl restart mongodb sudo systemctl status mongodb
Y Testujemy metodę uwierzytelniania za pomocą:
mongo -u "usuario" -p --authenticationDatabase "contraseña"
Pomóż mi z tym BŁĘDEM.
2021-03-24T21: 33: 16.233 + 0000 E QUERY [wątek1] Błąd: lista baz danych nie powiodła się: {
«Ok»: 0,
"Errmsg": "administrator nie ma uprawnień do wykonania polecenia {listDatabases: 1.0, $ db: \" admin \ "}",
„Kod”: 13,
„CodeName”: „Brak autoryzacji”
}:
_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