Tehát úgy döntött, hogy MongoDB-t használ, ez nagyszerű alternative to MariaDB MERN verem alkalmazás, analitikai platform vagy bármilyen dokumentum alapú rendszer felépítéséhez, de falba ütköztek a jó öreg Linux parancssorokkal és számtalan terminálhibával.
Aggodalomra azonban semmi ok, mert ez az útmutató mindent megad, amit A-tól Z-ig tudnia kell a MongoDB Ubuntu telepítéséhez.
MongoDB használ X.Y.Z verziószámítás. 8.0 az a őrnagy kiadás sorozat, és 8.2 az a kiskorú kiadása azon a 8.0 cikluson belül. A kisebb kiadások ugyanabban a fő ciklusban adnak hozzá szolgáltatásokat, és a 8.0-tól kezdve a helyszíni telepítésekhez is elérhetők bizonyos használati esetekre (például Search és Vector Search). A MongoDB 8.0 az Ubuntu-n támogatja 24,04 (Noble), 22,04 (Jammy) és 20,04 (Fokális) 64 bites rendszereken, ARM64 támogatással bizonyos platformokon.
GnuPG és Curl előfeltételek
A hivatalos telepítése előtt mongodb-org csomaghoz az Ubuntu két előfeltételt igényel: GnuPG és Becsavar. Ezek az eszközök engedélyt adnak az Ubuntunak a MongoDB letöltésére, mivel az Ubuntu sajátja mongodb A csomagot nem a MongoDB Inc. karbantartja, és ütközik a tisztviselővel mongodb-org csomag. Ha már telepítette mongodb mindenképpen távolítsa el.
Ezután futtassa a parancsot sudo apt-get install gnupg curl. A Curl egy eszköz, amellyel fájlokat tölthet le az internetről, és a MongoDB biztonsági kulcsának lekéréséhez szükséges. Az Ubuntu a GnuPG-t használja a szoftver hitelességének ellenőrzésére. Ha hiányzik a GnuPG, az Ubuntu nem tudja ellenőrizni a MongoDB-csomagokat.
Győződjön meg arról, hogy a terminál sikeresen telepítette a GnuPG-t és a Curl-t. Ha igen, akkor így kell kinéznie:
MongoDB GPG kulcs importálása
Az Ubuntu csomagkezelője, az APT GPG-kulcsokat használ a csomagok telepítés előtti ellenőrzésére. E GPG kulcs nélkül az Ubuntu nem teszi lehetővé a MongoDB adattárainak hozzáadását. A kulcs hozzáadásához írja be a következő parancsot a terminálba:
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 kimenetének így kell kinéznie:
Egyszerűen fogalmazva, ez a parancs letölti a MongoDB biztonsági aláírását, átalakítja az Ubuntu által olvasható formátumba, és elmenti egy biztonságos rendszermappába. Íme a parancssor szakaszonkénti lebontása:
- curl -fsSL URL letölti a MongoDB hivatalos kulcsát
- – drágaság átalakítja a kulcsot szöveges formátumból binárissá, hogy az Ubuntu megértse
- -o /usr/share/keyrings/mongodb-server-8.0.gpg elmenti a bináris fájlt egy mappába, ahol az Ubuntu a megbízható kulcsokat tárolja
Ha minden parancssort tökéletesen illeszkedik, a nyilvános GPG-kulcs probléma nélkül hozzáadódik. Egyes felhasználók azonban problémákba ütköznek a MongoDB letöltése során a nem egyező GPG-kulcs miatt. Ilyen hibák:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
Akkor fordulhat elő, ha korábban nem követi pontosan a GPG billentyűparancsokat, és helyette használja sudo apt-key mert a modern Ubuntu nem ajánlja.
Add hozzá a MongoDB adattárat
A MongoDB Repository hozzáadása létrehoz egy fájlt, amely közli az Ubuntuval, hogy a MongoDB-csomagok egy adott internetcímen élnek. Hozza létre a listafájlt a címen /etc/apt/sources.list.d/mongodb-org-8.0.list segítségével beírja a tároló sort visszhang… | sudo póló…
Itt válik bonyolulttá, mivel az Ubuntu különböző verziói a parancs különböző változatait követelik meg. Most megvizsgáljuk, hogyan importálhatjuk a listafájlt az Ubuntu korábban említett három verzióján.
Ubuntu 24.04 (Noble)
A listafájl létrehozásához az Ubuntu 24.04-en egyszerűen fogalmazva 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álján.
Ez zavarónak tűnhet, de ne izzad meg. Ha a parancsot részekre bontjuk, kristálytiszta lesz.
- visszhang szöveget nyomtat
- /etc/apt/sources.list.d az a mappa, amelyben az Ubuntu a szoftverforrás-definíciókat tárolja. Minden fájl .lista A mappán belüli formátum az Ubuntut egy adott helyre mutat, ahonnan szoftvert tölthet le
- Normál felhasználóként alapértelmezés szerint nem írhat semmit a rendszermappákba. póló speciális engedélyt ad a felhasználónak, hogy használat közben szöveget írjon a rendszerfájlokba sudo
- nemes az Ubuntu 24.04 kódneve. Minden Ubuntu verziónak van egy kódneve, például:
| Változat | Kódnév |
| 20.04 | Fokális |
| 22.04 | Jammy |
| 24.04 | Nemes |
Ha nem illeszti össze az Ubuntu verzióját a megfelelő parancssorral, az Ubuntu nem ismeri fel a MongoDB adattárát.
Ubuntu 22.04 (Jammy)
A listafájl hozzáadása az Ubuntu Jammy-hez ugyanúgy néz ki, de a csere során be kell írnia a parancssort nemes -vel lekváros, így:
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
Győződjön meg arról, hogy ez egyezik az Ubuntu verziójával, különben ismét meghibásodik.
Ubuntu 20.04 (Fokális)
Kövesse ugyanazokat a lépéseket itt, de ahelyett nemes or lekváros, tedd be fokális:
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 a tároló beállítása után folytathatja a telepítést mongodb-org.
Frissítse a csomagadatbázist
Most, hogy az Ubuntu felismerte a repository-t, újra kell töltenie a benne lévő csomagadatbázist, így mostantól a MongoDB-t is tartalmazza. Adja ki az alább említett parancsot:
sudo apt-get update
Ez a parancs ugyanaz marad minden Ubuntu verzióban, és ha kihagyják, az Ubuntu nem tartalmazza a MongoDB-t. Ha a parancs elvégzi a feladatát, a terminál kimenete a következő legyen:
Most, a csomagadatbázis újratöltése után itt az ideje letölteni a MongoDB csomagokat.
Telepítse a MongoDB Community Servert
Különféle MongoDB-kiadásokat kell telepíteni, de a felhasználók általában a legújabb stabil verziót választják, mivel ez előnyösebb. A legújabb stabil verzió telepítéséhez futtassa sudo apt-get install -y mongodb-org
Az Ubuntu most letöltötte a MongoDB csomagokat, telepítette őket, létrehozott egy MongoDB felhasználói fiókot és egy adatkönyvtárat, és regisztrálta a MongoDB-t rendszerszolgáltatásként. Mostanra bemutattuk, hogyan lehet letölteni a MongoDB-t Ubuntu-ra. Most kezdjük el.
Hogyan indítsuk el a MongoDB-t
Most a MongoDB futtatásához meg kell mondanunk az Ubuntu "systemd" szolgáltatáskezelőjének, hogy ismerje fel a MongoDB-t háttérszolgáltatásként, és ehhez be kell írnia a következő parancsot a termináljába:
sudo systemctl start mongod
Ha a parancs elvégzi a feladatát, az Ubuntu most megnyitja a MongoDB-t háttéralkalmazásként. Ha azonban a parancs nem végzi el a feladatát, a következőhöz hasonló hibaüzenetet kaphat Nem sikerült elindítani a mongod.service-t.
Ez több gyakori probléma miatt fordulhat elő:
- Konfigurációs fájl hiba in /etc/mongod.conf (A YAML behúzási hibák gyakoriak)
- Port konfliktus (a 27017-es port már foglalt)
- Engedély kérdése adat- vagy naplókönyvtárakon (var/lib/mongodb vagy var/log/mongodb)
- A lemez megtelt or sérült fájlrendszer állapot
Három parancs a probléma diagnosztizálására
Könnyű megmondani, hogy mi lehet a hiba a konfigurációjával, amiért a MongoDB nem fut, de sokkal nehezebb meghatározni a pontos okot. Három egyszerű módszerrel diagnosztizálhatja, honnan származhat a hiba:
- Ellenőrizze a szolgáltatás állapotát: sudo systemctl status mongod –no-pager
- Ellenőrizze a részletes naplókat (a legfontosabb): sudo journalctl -u mongod –no-pager -n 100
- Ellenőrizze a MongoDB saját naplófájlját
De vegye figyelembe, hogy ha a lemez megtelt vagy a rendszerfájlok sérültek, a javítás inkább a hardverre, mint a szoftverre vonatkozik. Előfordulhat, hogy a felhasználóknak jobb felszerelést kell vásárolniuk a kiszolgáló beállításához a MongoDB hatékony futtatása érdekében, ha a jelenlegi beállításuk elavult.
Ha egy teljes értékű szerver vásárlása nem tartozik a költségvetésbe, fontolja meg a Cloudzy's megtekintését Ubuntu VPS tiszta élményért saját privát szerverén egy tetszőleges Ubuntu disztribúcióval. Ez jár hozzá 24/7 támogatást és akár 40Gbps hálózati sebesség, köszönhetően annak NVMe SSD és DDR5 RAM tárolás.
Ráadásul minimális késleltetéssel rendelkezik, 99.95% üzemidő, és a 14 napos pénzvisszafizetési garancia. Nem csak ez, de beszerezhető is 12 helyeken szerte a világon megfizethető áron.
Három leggyakoribb javítás a MongoDB futtatásához
Nincs abszolút mód a rendszer pontos MongoDB problémájának felismerésére és egy egyszerű lépéssel történő kijavítására. Tehát itt van néhány gyakori javítás, amellyel remélhetőleg elindíthatja MongoDB-jét.
- YAML konfigurációs behúzási hiba. Tegyük fel, hogy szerkesztetted /etc/mongod.conf rákérdezéssel ellenőrizze újra a behúzást sudo nano /etc/mongod.conf. A YAML fájl meglehetősen érzékeny a szóközökre, ezért ügyeljen arra, hogy szintenként csak két szóköz legyen /etc/mongod.conf.
- Foglalt 27017-es port. Ha valami más használja a 27017-es portot, állítsa le, vagy módosítsa a MongoDB portját mongod.conf. Ha nem biztos abban, hogy bármi fut a 27017-es porton, nyugodtan futtassa sudo ss -lntp | grep 27017 hogy megnézzem
- Engedélyprobléma az adatkönyvtárban. Néha a MongoDB nem rendelkezik engedéllyel a rendszeren való futtatáshoz, ezért egyáltalán nem fut. Első futás sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, majd indítsa újra a MongoDB-t a következővel sudo systemctl indítsa újra a mongodot
Szerint A MongoDB hivatalos weboldala, a probléma megkerülésének másik módja a démon újratöltése sudo systemctl démon-reloadés futtassa az első parancsot, sudo systemctl start mongod, ismét.
Ha nincs mongod.service, a telepítés nem helyezte el a rendszeregységet, ezért telepítse újra a mongodb-org csomag készlet.
Mindezek ellenére ellenőrizheti, hogy a MongoDB sikeresen elindult-e sudo systemctl állapot mongod. Ha a terminál azt mondja aktív (futó), indulhatsz. De van még néhány további konfiguráció, amelyek sokkal gördülékenyebbé teszik az élményt.
A MongoDB automatizálása
A MongoDB nem nyílik meg automatikusan minden alkalommal, amikor bekapcsolja a szervert; minden alkalommal meg kell ismételnie néhány említett lépést. Opcionálisan megmondhatja az Ubuntunak, hogy indítsa el a MongoDB-t az asztali rendszerindítás után.
Egyszerűen fuss sudo systemctl enable mongod a terminálon, amely mostantól minden újraindítás után azt fogja mondani a rendszernek, hogy futtassa a MongoDB-t. Ezenkívül újraindíthatja a mongod folyamat a parancs kiadásával sudo systemctl indítsa újra a mongodot. Ezenkívül előfordulhat, hogy a felhasználóknak követniük kell a folyamatot bármilyen hiba vagy fontos üzenet esetén a fájl kimenetének áttekintésével:
/var/log/mongodb/mongod.log
Most, hogy minden be van állítva, kezdjük el használni a mongodot.
A MongoDB Shell megnyitása
Az adatbázisukkal való interakcióhoz a felhasználóknak meg kell nyitniuk egy MongoDB-héjat a parancs kiadásával mongosh. Gondoljon rá, mint egy dedikált parancssori terminálra a MongoDB vagy egy MySQL konzol számára. Alternatív megoldásként kommunikálhat a MongoDB-vel grafikus felhasználói felület eszközeivel, például MongoDB illesztőprogramokkal. De ha a terminálról szeretne kapcsolatba lépni vele, mongosh arra készült, hogy ez megtörténjen.
A MongoDB mostantól teljesen működőképes lesz, de van néhány további lépés, amelyet meg kell fontolnia a biztonság érdekében.
Tedd a MongoDB hitelesítést
A MongoDB alapértelmezés szerint nem rendelkezik jelszavas védelemmel, mert már rendelkeznie kell hozzáféréssel a felhasználó létrehozásához. Íme egy egyszerű módja annak, hogy ez megtörténjen
Adminisztrátor felhasználó létrehozása
Először át kell váltania az adminisztrátori adatbázisra:
use admin
Ezután hozzon létre egy felhasználót a db.createUser({…}). Töltse ki a sajátjával
- Felhasználónév
- Jelszó
- Szerep
A szerephez lehetőleg típust gyökér ami azt jelenti, hogy teljes irányítást vagy adminisztrátort.
Hitelesítés engedélyezése
Most, hogy saját felhasználót állítunk be, szerkesztenünk kell a /etc/mongod.conf fájlt. Ennek az az oka, hogy ez a fájl szabályozza a MongoDB viselkedését. De ne feledje, hogy a fájl szerkesztésével mindig újra kell indítania a mongod szolgáltatás utána sudo systemctl indítsa újra a mongodot. Itt meg kell változtatnunk az engedélyezésnek nevezett paramétert, amely így néz ki:
security:
authorization:
A hitelesítési folyamat befejezéséhez egyszerűen módosítsa az engedélyezési értéket az alábbiak szerint:
security:
authorization: enabled
Mostantól a MongoDB bejelentkezést igényel, így a hitelesítés véglegesítve van. Most folytassuk egy másik konfigurációval, amely teljes mértékben kihasználja a MongoDB-t.
Nyissa meg a tűzfalát
Amint korábban említettük, a MongoDB a 27017-es porton fut. Mivel a tűzfalak alapértelmezés szerint blokkolják a portokat, meg kell adnia a tűzfalat, hogy engedélyezze az alkalmazások futtatását a 27017-es porton. Ehhez egyszerűen adja ki a parancsot:
ufw allow from YOUR_IP to any port 27017
Alternatív megoldásként a parancsot is kiadhatja ufw engedélyezése 27017, de légy óvatos, mert ezt futtatva az egész internet hozzáférhet ehhez a porthoz. Lehet, hogy a legbiztosabb, ha az első opciót választja, mivel ez lehetővé teszi, hogy a forgalom csak az Ön IP-címéről férhessen hozzá a porthoz.
A felhasználók továbbra is kihívásokkal nézhetnek szembe a MongoDB futtatásakor, például a távoli hozzáféréssel. Maradjon körül, hogy megtudja, hogyan javíthatja ki.
Távoli hozzáférési probléma
A MongoDB ezzel elindul bindIp. bindIp korlátozza a MongoDB-t 127.0.0.1, amely csak helyi kapcsolatokat tesz lehetővé. Ezért, ha valahonnan máshonnan csatlakozna a MongoDB-kiszolgálóhoz, akkor nem férhet hozzá, mivel a MongoDB alapértelmezés szerint csak a helyszíni kapcsolatokat engedélyezi, hacsak nincs másként konfigurálva.
Ismét irány /etc/mongod.conf, és három ehhez hasonló sort fog látni:
net:
port: 27017
bindIp: 127.0.0.1
Ha engedélyezni szeretné a távoli kapcsolatokat a mongod felhasználó, módosítsa a fent bemutatott értékeket a következőképpen:
net:
port: 27017
bindIp: 0.0.0.0
Ezt követően indítsa újra mongod szolgáltatással sudo systemctl indítsa újra a mongodot mint minden más szerkesztésnél, amelyet a fájlon végez.
Most megadtad a sajátodat mongod szolgáltatási engedély a távoli kapcsolatok fogadására. De legyen óvatos, mert ezzel az adatbázisát az egész internet számára kiszolgáltatja, ha még nem hitelesítette mongod felhasználó. Sok bot van, amely folyamatosan keresi a nyitott MongoDB portokat, ezért mindig győződjön meg arról, hogy mongod felhasználója rendelkezik jelszóval.
Nagy kép összefoglaló
Gratulálunk, most mindent megtett annak érdekében, hogy optimalizált MongoDB szolgáltatást hozzon létre az Ubuntu rendszeréhez. Itt van egy mentális térkép is, amely nyomon követheti a cikkben bemutatott minden lépést.
| Parancs | Mit csinál |
| találó frissítés | Frissítse a szoftverlistát |
| apt install | Telepítsen szoftvert |
| becsavar | Fájl letöltése |
| gpg | Titkosítási kulcsok kezelése |
| visszhang | Szöveg nyomtatása |
| póló | Írás védett fájlba |
| systemctl start | Indítsa el a szolgáltatást |
| systemctl enable | Kezdje a rendszerindításkor |
| systemctl állapot | Ellenőrizze a szervizt |
| mongosh | Írja be a MongoDB shellt |
| Szerkesztés /etc/mongod.conf | Hitelesítés engedélyezése |
| ufw | Tűzfal kezelése |
| bindIp | Távoli hozzáférés engedélyezése |
Ez segíteni fog az egész folyamat jobb megértésében. De ha a MongoDB önálló beállítása túl sok neked, feltétlenül pörgesse fel a Cloudzy-t MongoDB VPS saját Ubuntu 24.04 LTS-kiszolgálójához, előre telepített MongoDB-vel.
Ez jár hozzá 99.95% üzemidő, 24/7 támogatás, és a 14 napos pénzvisszafizetési garancia. Ezen kívül támogatja akár 40 Gbps a sávszélességnek köszönhetően DDR5 RAM és NVMe SSD tárolás. Ne törődj azzal, hogy hol élsz, mert itt is elérhető 12 világszerte elérhető áron.
Mindezek ellenére végre sikerült beállítania saját alkalmas MongoDB szolgáltatását, amely minden konfigurációval fel van szerelve, hogy támogassa a termelési szintű munkaterheléseket és a vállalkozásokat.