Poniższy poradnik opisuje proces instalacji MongoDB w systemie Centos 8.
Całość jest banalnie prosta i sprowadza się do wykonanaia kilku prostych poleceń.
We wcześniejszych wpisach opisywaliśmy proces instalacji dla Ubuntu 18.04 który znajduje się pod tym wpisem.
Na początek tworzymy repozytorium:
nano /etc/yum.repos.d/mongodb.repo
Jego zawartość:
[mongodb-org-4.2] name=MongoDB Repository baseurl=https://repo.mongodb.org/yum/redhat/$releasever/mongodb-org/development/x86_64/ gpgcheck=1 enabled=1 gpgkey=https://www.mongodb.org/static/pgp/server-4.2.asc
Zapisujemy plik i kodonujemy instalacji samej usługi:
dnf install mongodb-org
Uruchamiamy go i dodajemy do autostartu:
systemctl start mongod systemctl enable mongod
Sprawdzamy status usługi:
systemctl status mongod
Wynik:
? mongod.service - MongoDB Database Server Loaded: loaded (/usr/lib/systemd/system/mongod.service; enabled; vendor preset: disabled) Active: active (running) since Mon 2020-01-03 03:59:12 EDT; 5min ago Docs: https://docs.mongodb.org/manual Process: 737 ExecStart=/usr/bin/mongod $OPTIONS (code=exited, status=0/SUCCESS) Process: 735 ExecStartPre=/usr/bin/chmod 0755 /var/run/mongodb (code=exited, status=0/SUCCESS) Process: 732 ExecStartPre=/usr/bin/chown mongod:mongod /var/run/mongodb (code=exited, status=0/SUCCESS) Process: 726 ExecStartPre=/usr/bin/mkdir -p /var/run/mongodb (code=exited, status=0/SUCCESS) Main PID: 914 (mongod) Memory: 216.1M CGroup: /system.slice/mongod.service ??914 /usr/bin/mongod --auth -f /etc/mongod.conf Oct 28 03:58:14 centos8 systemd[1]: Starting MongoDB Database Server... Oct 28 03:58:28 centos8 mongod[737]: about to fork child process, waiting until server is ready for connections. Oct 28 03:58:28 centos8 mongod[737]: forked process: 914 Oct 28 03:59:12 centos8 mongod[737]: child process started successfully, parent exiting Oct 28 03:59:12 centos8 systemd[1]: Started MongoDB Database Server.
Do mongoDB dostaniemy się wykonując polecenie:
mongo
Tworzenie użytkownika administracyjnego MongoDB
dostajemy się do MongoDB poleceniem :
mongo
Następnie przechodzimy na bazę danych o nazwie admin
use admin
Wydajemy polecenie utworzenia użytkownika:
db.createUser( { user: "mongodadmin", pwd: "password123", roles: [ { role: "userAdminAnyDatabase", db: "admin" } ] } )
password123 zmieniamy oczywiście na nasze tajne hasło 😉
Powinniśmy otrzymać wynik:
Successfully added user: { "user" : "mongodadmin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ] }
Sprawdzamy użytkowników poleceniem:
show users
Wynik:
{ "_id" : "admin.mongodadmin", "userId" : UUID("f6e908db-e393-44a9-8c77-0fdb1c2baa0e"), "user" : "mongodadmin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
Konfigurujemy uwierzytelnianie MongoDB
Domyślnie MongoDB umożliwia wszystkim użytkownikom dostęp do powłoki MongoDB i uruchamianie dowolnych poleceń. Dlatego zaleca się skonfigurowanie uwierzytelniania MongoDB, aby uniemożliwić innym użytkownikom uruchamianie komend bez wystarczających uprawnień.
Najpierw musisz włączyć uwierzytelnianie MongoDB, edytując plik
nano /lib/systemd/system/mongod.service
I ustawiamy tak następującą linijkę:
Environment="OPTIONS= --auth -f /etc/mongod.conf"
Przeładowujemy usługi:
systemctl --system daemon-reload systemctl restart mongod
Teraz spróbujemy się dostać bez uprawnień:
mongo use admin show users
Zobaczymy błąd
2019-10-28T04:13:15.346-0400 E QUERY [js] uncaught exception: Error: command usersInfo requires authentication : _getErrorWithCode@src/mongo/shell/utils.js:25:13 DB.prototype.getUsers@src/mongo/shell/db.js:1638:15 shellHelper.show@src/mongo/shell/utils.js:883:9 shellHelper@src/mongo/shell/utils.js:790:15 @(shellhelp2):1:1
Teraz zalogujemy się poprawnie z uprawnieniami:
db.auth('mongodadmin', 'password123') show users
You should see the admin user with their roles in the following output: { "_id" : "admin.mongodadmin", "userId" : UUID("f6e908db-e393-44a9-8c77-0fdb1c2baa0e"), "user" : "mongodadmin", "db" : "admin", "roles" : [ { "role" : "userAdminAnyDatabase", "db" : "admin" } ], "mechanisms" : [ "SCRAM-SHA-1", "SCRAM-SHA-256" ] }
Poniższy poradnik opisuje sposób instalacji KeePass w systemie Ubuntu. Całość wykonamy za pomocą kilku poleceń…
Master PDF Editor to wszechstronny program PDF, który zawiera wiele funkcji. Oprócz tworzenia i edycji…
Iotop jest prostym narzędziem dla systemów Uniksowych umożliwiającym monitorowanie użycia dowolnego nośnika pamięci flash/hdd/ssd w…
Możesz oddzielić dwa lub więcej poleceń za pomocą średników (;), Średnik (;): służy do oddzielania…
Poniższy poradnik opisuje w jaki sposób za pomocą konsoli możemy dokonać edycji danych zdjęcia exif.…
Poniższy poradnik opisuje sposób instalacji Rocket.Chat W systemie Rocky Linux 8 Całość bardzo prosto zainstalujemy…