Kategorie: Linux

Instalacja MongoDB w systemie Centos 8

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"
 ]
}

Linux

Udostępnij
Opublikowane przez
Linux

Najnowsze wpisy

KeePass2 2.52 w Ubuntu 22.04

Poniższy poradnik opisuje sposób instalacji KeePass w systemie Ubuntu. Całość wykonamy za pomocą kilku poleceń…

2 lata temu

Instalacja Master PDF editor w Ubuntu 22.04

Master PDF Editor to wszechstronny program PDF, który zawiera wiele funkcji. Oprócz tworzenia i edycji…

2 lata temu

iotop – monitorowanie pamięci

Iotop jest prostym narzędziem dla systemów Uniksowych umożliwiającym monitorowanie użycia dowolnego nośnika pamięci flash/hdd/ssd w…

2 lata temu

Uruchomienie wiele poleceń w jednym zadaniu Cron

Możesz oddzielić dwa lub więcej poleceń za pomocą średników (;), Średnik (;): służy do oddzielania…

2 lata temu

Zmiana danych exif zdjęcia w terminalu Linux

Poniższy poradnik opisuje w jaki sposób za pomocą konsoli możemy dokonać edycji danych zdjęcia exif.…

2 lata temu

Instalacja Rocket.Chat Server w systemie Rocky Linux 8

Poniższy poradnik opisuje sposób instalacji Rocket.Chat W systemie Rocky Linux 8 Całość bardzo prosto zainstalujemy…

2 lata temu