MongoDB: Pierwsze kroki

Jak zacząć z 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

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 admin podczas operacji tworzenia użytkownika.

Aby usunąć użytkownika, takiego jak myUser, z bazy danych myDatabase, możesz wykonać następującą komendę:

db.getSiblingDB("myDatabase").dropUser("myUser");

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"

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).