Úgy döntött, hogy az MongoDB-et használja, amely nagyszerű alternative to MariaDB MERN-stack alkalmazás, analitikai platform vagy bármilyen dokumentum-alapú rendszer építéséhez, de nehézségekbe ütközött a hagyományos Linux parancssorokkal és számos terminál hibával.
Ne aggódjon, mert ez az útmutató mindent tartalmaz az MongoDB Ubuntu-ra történő telepítéséhez szükséges információból az A-tól a Z-ig.
MongoDB használ X.Y.Z verziózás. 8.0 van egy fő kiadási sorozat, valamint 8.2 van egy mellékos kiadás az 8.0 cikluson belül. Az alverziók új funkciókat adnak az ugyanazon főverzióhoz, és a 8.0-tól kezdve helyszíni telepítésekhez is elérhetőek meghatározott használati esetekhez (például Search és Vector Search). Az MongoDB 8.0 az Ubuntu-en működik 24.04 (Noble), 22.04 (Jammy) és 20.04 (Focal) 64 bites rendszereken, ARM64 támogatással kiválasztott platformokon.
GnuPG és Curl előfeltételek
A hivatalos csomag telepítése előtt mongodb-org az Ubuntu két előfeltételt igényel: GnuPG és Curl. Ezek az eszközök engedélyt adnak az Ubuntu-nek az MongoDB letöltésére, mivel az Ubuntu saját mongodb csomagja nem az MongoDB Inc. kezeli, és ütközik a hivatalos mongodb-org csomaggal. Ha már telepítette mongodb akkor eltávolítás szükséges.
Ezután futtassa a következő parancsot sudo apt-get install gnupg curl. A Curl egy eszköz az internetről való fájlletöltéshez, és szükséges az MongoDB biztonsági kulcsának letöltéséhez. A GnuPG azt használja az Ubuntu, hogy ellenőrizze a szoftver hitelességét. Ha a GnuPG hiányzik, az Ubuntu nem tudja ellenőrizni az MongoDB csomagokat.
Ellenőrizze, hogy a terminál sikeresen telepítette-e a GnuPG-t és a Curl-t. Ha igen, így nézhessen ki:
MongoDB GPG kulcs importálása
Az Ubuntu csomagkezelője, az APT, GPG kulcsokat használ a csomagok ellenőrzésére a telepítés előtt. E GPG kulcs nélkül az Ubuntu nem engedi az MongoDB adattárai hozzáadását. Írja be a következő parancsot a terminálba a kulcs hozzáadásához:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
Ha működik, a terminál kimenete így kell kinézzen:
Egyszerűen fogalmazva, ez a parancs letölti az MongoDB biztonsági aláírását, szöveges formátumból az Ubuntu által olvasható formátumba konvertálja, és egy biztonságos rendszermappában menti. A parancssor szakaszonkénti bontása:
- curl -fsSL URL letölti az MongoDB hivatalos kulcsát
- –dearmor konvertálja a kulcsot szöveges formátumból bináris formátumba az Ubuntu számára
- -o /usr/share/keyrings/mongodb-server-8.0.gpg a bináris fájlt egy olyan mappába menti, ahol az Ubuntu a megbízható kulcsokat tárola
Ha pontosan követed az összes parancssori utasítást, a nyilvános GPG-kulcs hiba nélkül hozzáadódik. Egyes felhasználók azonban problémákba ütköznek az MongoDB letöltésekor, mivel a GPG-kulcs nem egyezik. Ilyen típusú hibák:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
akkor fordulnak elő, ha nem követed pontosan a GPG-kulcs parancssori utasításait, hanem helyette az sudo apt-key parancsot használod, mert a modern Ubuntu nem ajánlja ezt.
Az MongoDB adattár hozzáadása
Az MongoDB adattárának hozzáadása egy olyan fájlt hoz létre, amely közli az Ubuntu-vel, hogy az MongoDB csomagjai egy adott internetes címen érhetőek el. Hozd létre a listafile-t a /etc/apt/sources.list.d/mongodb-org-8.0.list helyen az adattár sorának beírásával a echo … | sudo tee …
parancs segítségével. Ennél kezdődik a trükkös rész, mivel az Ubuntu különböző verziói a parancs eltérő módosítását igénylik. Most három, korábban említett Ubuntu verzión fogjuk megvizsgálni, hogyan lehet importálni a listafile-t.
Ubuntu 24.04 (Noble)
Az Ubuntu 24.04-en a listafile létrehozásához egyszerűen írd be: echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list a terminálodban.
Ez zavarosnak tűnhet, de ne aggódj. Amint felbontjuk a parancsot szekciókra, kristálytisztává válik.
- echo szöveget nyomtat
- /etc/apt/sources.list.d az a mappa, ahol az Ubuntu a szoftverforrás-definíciókat tárola. A mappában minden .list formátumú fájl az Ubuntu-t egy adott helyre irányítja, ahonnan szoftvert lehet letölteni
- Alapértelmezésben normális felhasználóként nem írhatod ki a rendszermappákat. póló különleges engedélyt ad a felhasználónak a szöveg rendszerfájlokba írásához, miközben a sudo
- nemes az Ubuntu 24.04 kódneve. Az Ubuntu minden verziójának van kódneve, mint például:
| Verzió | Kódnév |
| 20.04 | Fókusz |
| 22.04 | Jammy |
| 24.04 | Nemes |
Ha nem egyeztetted az Ubuntu verziódat a megfelelő parancssori utasítással, az Ubuntu nem ismeri fel az MongoDB adattárát.
Ubuntu 22.04 (Jammy)
A listafile Ubuntu Jammy-hez való hozzáadása szinte ugyanez, de a parancsot úgy kell megadnod, hogy lecseréled az nemes vele jammyI don't see any English text to translate in your message. Please provide the English text you'd like me to translate to Hungarian, and I'll translate it following the rules you've specified.
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Ügyelj arra, hogy az az Ubuntu verziódat megfelel, különben megint sikertelen lesz.
Ubuntu 20.04 (Focal)
Kövesd ugyanezeket a lépéseket itt is, de helyett az nemes or jammy, tedd be focal:
echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list
Most már a tárház beállítása után folytathatod a telepítéssel mongodb-org.
Frissítsd a csomagadatbázist
Most, hogy az Ubuntu felismeri a tárházat, újra kell töltened a csomagadatbázist, hogy az MongoDB is benne legyen. Futtasd az alábbi parancsot:
sudo apt-get update
Ez a parancs minden Ubuntu verzióban azonos, és ha kihagyod, az Ubuntu nem fogja tartalmazni az MongoDB-t. Ha a parancs sikeresen lefut, a terminálodat valahogy így kell kinéznie:
Most, hogy frissítetted a csomagadatbázist, ideje letölteni az MongoDB csomagokat.
Telepítsd az MongoDB Community Server-t
Az MongoDB több verziójából lehet választani, de általában a legújabb stabil verzió a legjobb választás. A legújabb stabil verzió telepítéséhez futtasd sudo apt-get install -y mongodb-org
Az Ubuntu letöltötte az MongoDB csomagokat, telepítette őket, létrehozott egy MongoDB felhasználói fiókot és adatkönyvtárat, valamint rendszeri szolgáltatásként regisztrálta az MongoDB-t. Eddig azt fedeztük fel, hogyan lehet az MongoDB-t az Ubuntu-re telepíteni. Most pedig indítsuk el.
Hogyan indítsd el az MongoDB-t
Az MongoDB futtatásához meg kell adnod az Ubuntu szolgáltatáskezelőjének, a systemd-nek, hogy ismerje fel az MongoDB-t háttérszolgáltatásként. Ehhez írd be a következő parancsot a terminálodbó:
sudo systemctl start mongod
Ha a parancs sikeresen lefut, az Ubuntu háttéralkalmazásként megnyitja az MongoDB-t. Ha nem sikerül, lehetséges, hogy egy ehhez hasonló hibát kapsz: Nem sikerült elindítani a mongod.service-t..
Ez több gyakori probléma miatt fordulhat elő:
- Konfigurációs fájl hibája in /etc/mongod.conf (YAML behúzási hibák gyakoriak)
- Portkonfliktus (a 27017-es port már foglalt)
- Engedély hiba az adatok vagy naplókönyvtárain (var/lib/mongodb vagy var/log/mongodb)
- Lemez megtelt or sérült fájlrendszer állapota
Három parancs a probléma diagnosztizálásához
Könnyű azt mondani, mi lehetne rossz a konfigurációddal, hogy az MongoDB nem működik, de sokkal nehezebb az egzakt hibaforrást azonosítani. Három egyszerű módszer, amellyel diagnosztizálhatod, honnan eredhet a hiba:
- Szolgáltatás állapotának ellenőrzése: sudo systemctl status mongod –no-pager
- Részletes naplók ellenőrzése (ez a legfontosabb): sudo journalctl -u mongod –no-pager -n 100
- Az MongoDB saját naplófájljának ellenőrzése
Azonban figyeljen arra, hogy ha a lemez megtelt vagy a rendszerfájlok megsérültek, a megoldás inkább a hardverrhez kapcsolódik, mint a szoftverhez. Előfordulhat, hogy a felhasználóknak jobb felszerelésre van szükségük a kiszolgálóhoz ahhoz, hogy az MongoDB hatékonyan fusson, ha a jelenlegi beállításuk elavult.
Ha nem engedheti meg magának egy teljes kiszolgálót, fontoljon meg az Cloudzy-t Ubuntu VPS tiszta élményért a saját magánszerver-en az Ubuntu disztribúcióval, amit választ. Ez tartalmaz 24/7 támogatás és akár 40Gbps hálózati sebességet az NVMe SSD és DDR5 RAM tárolás.
Ráadásul nagyon alacsony a késleltetése, 99.95% üzemidő, és egy 14 napos pénzvisszafizetési garancia. Nem csak ez, de elérhető 12 világszerte különböző helyeken megfizethető áron.
Három leggyakoribb módszer, hogy az MongoDB működjön
Nincs semmilyen abszolút módszer arra, hogy egyidejűleg felismerd a rendszered pontos problémáját az MongoDB-nel és azt egyetlen könnyű lépésben megoldja. Ezért itt van néhány gyakori megoldás, amellyel remélhetőleg az MongoDB újra működésbe lendül.
- YAML konfigurációs behúzási hiba. Tegyük fel, hogy szerkesztettél /etc/mongod.conf ellenőrizd újra a behúzást a következő megadásával: sudo nano /etc/mongod.conf. Az YAML fájl nagyon érzékeny a szóközökre, ezért győződj meg arról, hogy csak két szóköz van szintenként a /etc/mongod.conf.
- A 27017-es port foglalt. Ha valami más használja a 27017-es portot, állítsd le vagy módosítsd az MongoDB portját a mongod.conf. Ha bizonytalan vagy azzal kapcsolatban, hogy mi fut a 27017-es porton, futtass sudo ss -lntp | grep 27017 megnézni
- Engedélyi probléma az adatkönyvtárban. Néha az MongoDB nem rendelkezik engedéllyel, hogy fusson a rendszeren, ezért egyáltalán nem működik. Először futtass sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, majd indítsd újra az MongoDB-t a sudo systemctl restart mongod
Szerint Az MongoDB hivatalos weboldala, egy másik megoldás erre a problémára a démon újratöltése: sudo systemctl daemon-reload, majd az első parancs futtatása: sudo systemctl start mongod, újra.
Ha nincs mongod.service, a telepítés nem helyezte el a systemd egységet, ezért telepítsd újra a mongodb-org csomag beállítása
Miután mindez megvan, ellenőrizheted, hogy az MongoDB sikeresen indult-e a következő paranccsal: sudo systemctl status mongod. Ha a terminál azt jelzi, hogy aktív (futó), akkor jó vagy. De vannak további konfigurációk, amelyek sokkal könnyebbé teszik a munkádat.
Az MongoDB automatizálása
Az MongoDB nem indul el automatikusan, amikor bekapcsolod a szervert; minden alkalommal meg kell ismételned néhány lépést. Ha akarod, utasíthatod az Ubuntu-t, hogy indítsa el az MongoDB-t az asztalra való bejelentkezés után.
Egyszerűen futtasd sudo systemctl enable mongod a terminálodban, amely mostantól azt fogja megmondani a rendszerednek, hogy futtasd az MongoDB-t minden újraindítás után. Ráadásul újraindíthatod az mongod folyamatot a következő parancs kiadásával: sudo systemctl restart mongod. Emellett a felhasználóknak szükségük lehet a folyamat követésére az esetleges hibákért vagy fontos üzenetekért az alábbi fájlban található kimenet áttekintésével:
/var/log/mongodb/mongod.log
Most, hogy mindenre sor került, kezdjük el használni az MongoDB-t.
Az MongoDB shell megnyitása
Az adatbázissal való interakcióhoz a felhasználóknak meg kell nyitniuk egy MongoDB shellt az alábbi parancs kiadásával: mongosh. Gondolj rá úgy, mint egy dedikált parancssor-terminál az MongoDB-hez vagy egy MySQL konzol. Alternatívaként interakcióba léphetsz az MongoDB-vel grafikus eszközök segítségével, például az MongoDB driverekel. De ha terminálból szeretnél interakcióba lépni, mongosh erre a célra készült.
Az MongoDB mostantól teljesen működőképes, de vannak további lépések, amelyeket figyelembe kell venned a biztonság érdekében.
Az MongoDB hitelesítésének beállítása
Az MongoDB alapértelmezésben nem rendelkezik jelszóvédelemmel, mivel már hozzáféréssel kell rendelkezned egy felhasználó létrehozásához. Íme egy egyszerű megoldás ennek megvalósítására
Adminisztrátor felhasználó létrehozása
Először az admin adatbázisra kell váltanod:
use admin
Ezután hozz létre egy felhasználót ezzel: db.createUser({…}). Töltsd ki a következőkkel:
- Felhasználónév
- Jelszó
- Szerepkör
A szerepkörhöz javasolt típusok root ami teljes kontrollt vagy admin hozzáférést jelent.
Hitelesítés engedélyezése
Most, hogy már saját felhasználónk van, szerkesztenünk kell a /etc/mongod.conf fájlt. Ez azért van, mert ez a fájl vezérli az MongoDB viselkedését. De ne felejtsd el, hogy a fájl szerkesztése után mindig újra kell indítanod a mongod utána a szolgáltatás sudo systemctl restart mongod. Amit itt meg kell változtatnunk, az egy authorization nevű paraméter, amely így néz ki:
security:
authorization:
Az azonosítási folyamat befejezéséhez módosítsd az engedélyezési értéket az alábbi módon:
security:
authorization: enabled
Mostantól az MongoDB bejelentkezést igényel, így a hitelesítés lezárult. Lépjünk tovább az MongoDB teljes potenciálját kihasználó beállításokra.
Nyisd meg a tűzfalat
Ahogy korábban említettük, az MongoDB a 27017-es porton fut. Mivel a tűzfalak alapértelmezés szerint blokkolják a portokat, engedélyeznünk kell a tűzfalban, hogy az alkalmazások a 27017-es porton futjanak. Ehhez egyszerűen futtassa ezt a parancsot:
ufw allow from YOUR_IP to any port 27017
Másik lehetőségként a következő parancsot is kiadhatod ufw allow 27017, de vigyázz, mert így az egész internet hozzáférhet ahhoz a porthoz. A legbiztonságosabb megoldás valószínűleg az első lehetőség, amely csak az IP-címedről engedélyezi a port elérését.
Az MongoDB futtatásakor felmerülhetnek problémák, például távoli hozzáférési problémák. Maradj velünk, megtudod, hogyan lehet őket megoldani.
Távolról történő hozzáférés problémája
MongoDB indulással bindIp. bindIp korlátozza a MongoDB-t a(z) 127.0.0.1, amely csak helyi kapcsolatokat engedélyez. Ha tehát egy másik helyről szeretnél csatlakozni az MongoDB szerverhez, nem kapnál hozzáférést, mert az MongoDB alapértelmezés szerint csak helyi kapcsolatokat engedélyez, hacsak másként nem állítod be.
Most pedig irányítsd a kurzort ide: /etc/mongod.conf, és három sort fogsz látni, mint ez:
net:
port: 27017
bindIp: 127.0.0.1
Ha szeretnél távolról csatlakoztatni a mongod felhasználót, módosítsd az alábbi értékeket így:
net:
port: 27017
bindIp: 0.0.0.0
Utána indítsd újra az mongod szolgáltatás sudo systemctl restart mongod szolgáltatást, mint bármelyik másik szerkesztéskor a fájlban.
Most már engedélyt adtál az mongod szolgáltatásnak, hogy távolról fogadjon kapcsolatokat. Óvatosan azonban, mivel így az egész internet előtt kiteszted az adatbázisodat, ha még nem állítottál be hitelesítést az mongod felhasználóhoz. Számtalan bot folyamatosan keresi az MongoDB portokat, ezért mindig gondoskodj arról, hogy a mongod felhasználónak erős jelszava legyen.
Áttekintés
Gratulálunk, megtettél mindent az optimalizált MongoDB szolgáltatás létrehozásához az Ubuntu rendszeredon. Itt van egy gondolattérkép az összes lépéshez, amit ebben a cikkben bemutattunk.
| Parancs | Mit csinál |
| apt frissítés | Szoftverlista frissítése |
| apt telepítés | Szoftver telepítése |
| curl | Fájl letöltése |
| gpg | Titkosítási kulcsok kezelése |
| echo | Szöveg nyomtatása |
| póló | Írás védett fájlba |
| systemctl start | Szolgáltatás indítása |
| systemctl engedélyezése | Indítás a rendszer felbooting után |
| systemctl állapota | Szolgáltatás ellenőrzése |
| mongosh | MongoDB shell elindítása |
| Szerkesztés /etc/mongod.conf | Hitelesítés engedélyezése |
| ufw | Tűzfal kezelése |
| bindIp | Távolról való hozzáférés engedélyezése |
Ez segít jobban megérteni az egész folyamatot. De ha az MongoDB beállítása egyedül túl sok lenne, indítsd el az Cloudzy MongoDB VPS szerverét az MongoDB előtelepítésével, az Ubuntu 24.04 LTS rendszeredon.
Jár hozzá 99.95% uptime, 24/7 támogatás, és egy 14 napos pénzvisszaadási garancia. Ezen felül akár 40 Gbps sávszélességet is támogat a DDR5 RAM és NVMe SSD tárhelyének köszönhetően. Ne aggódj az elhelyezkedésed miatt sem, hiszen elérhető 12 helyen a világon kedvező áron.
Végül sikeresen beállítottad az MongoDB szolgáltatásodat a termelési szintű terheléssel és üzleti követelményekkel együtt.