MongoDB: Pierwsze kroki
Jak zacząć z MongoDB
Łączenie się z serwerem MongoDB
Aby nawiązać połączenie z instancją MongoDB za pomocą Mongo CLI, można użyć tej komendy:
mongo --quiet mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true
Na przykład, jeśli chcesz połączyć się jako użytkownik admin z bazą danych admin, możesz uruchomić:
mongo --quiet mongodb://admin:<password>@<XXXXXX>.stackhero-network.com:27017/admin?tls=true
Jeśli Mongo CLI nie jest zainstalowane na Twoim systemie, możesz je pobrać z oficjalnej dokumentacji MongoDB. Alternatywnie, jeśli Docker jest dostępny na Twoim systemie, możesz skorzystać z tej komendy:
docker run -it mongo /bin/bash
Tworzenie baz danych i użytkowników w MongoDB
Aby poprawić bezpieczeństwo i zapewnić lepszą organizację, zaleca się tworzenie unikalnych użytkowników dla każdej bazy danych. Oto przykładowy skrypt do tworzenia nowego użytkownika:
db.getSiblingDB("myDatabase")
.createUser({
user: "myUser",
pwd: "myPassword",
roles: [ { role: "readWrite", db: "myDatabase" } ],
passwordDigestor: "server"
});
Powyższy skrypt tworzy użytkownika o nazwie myUser z hasłem myPassword i przyznaje mu uprawnienia do odczytu i zapisu dla bazy danych myDatabase.
Upewnij się, że jesteś zalogowany jako użytkownik
adminpodczas operacji tworzenia użytkownika.
Usuwanie użytkownika w MongoDB
Aby usunąć użytkownika, takiego jak myUser, z bazy danych myDatabase, możesz wykonać następującą komendę:
db.getSiblingDB("myDatabase").dropUser("myUser");
Tworzenie kopii zapasowej danych MongoDB
Aby utworzyć kopię zapasową danych MongoDB, możesz użyć następującej komendy:
mongodump --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"
Jeśli napotkasz błąd taki jak ten:
authentication failed for admin on <database> from client <ip>; UserNotFound: Could not find user admin@<database>
Może to być spowodowane tym, że użytkownik admin nie jest zarejestrowany dla określonej bazy danych. Dodanie opcji --authenticationDatabase=admin może rozwiązać problem:
mongodump --authenticationDatabase=admin --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"
Dla skompresowanej kopii zapasowej możesz dodać opcję --gzip:
mongodump --gzip --uri "mongodb://<user>:<password>@<XXXXXX>.stackhero-network.com:27017/<database>?tls=true"
Rozwiązywanie problemów
Rozwiązywanie błędu Use of SCRAM-SHA-256 requires undigested passwords
Ten błąd może wystąpić podczas próby utworzenia użytkownika za pomocą interfejsu Admin Mongo UI. Aby tego uniknąć, użyj zapytania Mongo podanego w sekcji tworzenie baz danych i użytkowników w MongoDB.
Uwaga: Interfejs Admin Mongo UI nie obsługuje bezpośredniego wykonywania zapytań. Zamiast tego możesz rozważyć użycie Mongo CLI (dowiedz się więcej) lub narzędzia GUI, takiego jak Robo 3T (zobacz przewodnik konfiguracji).