Så du har besluttet at bruge MongoDB, en fantastisk alternative to MariaDB til at bygge en MERN stack-app, en analyseplatform eller ethvert dokumentbaseret system, men har ramt en mur med gode gamle Linux-kommandolinjer og utallige terminalfejl.
Men ingen bekymringer, for denne guide giver alt, hvad du behøver at vide fra A til Z for at installere MongoDB på Ubuntu.
MongoDB bruger X.Y.Z versionering. 8.0 er en major udgivelsesserie, og 8.2 er en mindre frigives inden for den 8.0-cyklus. Mindre udgivelser tilføjer funktioner inden for den samme store cyklus og, startende med 8.0, tilbydes de også til on-prem installationer til specifikke brugstilfælde (for eksempel Search og Vector Search). MongoDB 8.0 på Ubuntu understøtter 24.04 (Noble), 22.04 (Jammy) og 20.04 (Focal) på 64-bit systemer, med ARM64-understøttelse på udvalgte platforme.
GnuPG og Curl Forudsætninger
Før du installerer den officielle mongodb-org pakke, kræver Ubuntu to forudsætninger: GnuPG og Krølle. Disse værktøjer giver Ubuntu tilladelse til at downloade MongoDB, fordi Ubuntus egen mongodb pakken vedligeholdes ikke af MongoDB Inc. og er i konflikt med embedsmanden mongodb-org pakke. Hvis du allerede har installeret mongodb sørg for at afinstallere det.
Næste, kør kommandoen sudo apt-get installer gnupg curl. Curl er et værktøj til at downloade filer fra internettet og er nødvendigt for at hente MongoDBs sikkerhedsnøgle. GnuPG er, hvad Ubuntu bruger til at verificere software-ægthed. Hvis GnuPG mangler, kan Ubuntu ikke bekræfte MongoDB-pakker.
Sørg for, at din terminal har installeret GnuPG og Curl. Hvis det gjorde, skulle det se sådan ud:
Importerer MongoDB GPG-nøgle
Ubuntus pakkehåndtering, APT, bruger GPG-nøgler til at bekræfte pakker før installation. Uden denne GPG-nøgle tillader Ubuntu ikke, at MongoDBs repositories tilføjes. Indtast følgende kommando i din terminal for at tilføje nøglen:
curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
--dearmor
Hvis det virker, skal din terminaludgang se sådan ud:
For at sige det enkelt downloader denne kommando MongoDBs sikkerhedssignatur, konverterer den til et format Ubuntu kan læse og gemmer den i en sikker systemmappe. Her er en oversigt over kommandolinjen sektion for sektion:
- curl -fsSL URL downloader MongoDBs officielle nøgle
- – kære konverterer nøglen fra tekstformat til binær for Ubuntu at forstå
- -o /usr/share/keyrings/mongodb-server-8.0.gpg gemmer den binære fil i en mappe, hvor Ubuntu gemmer betroede nøgler
Hvis du matcher hver kommandolinje perfekt, vil den offentlige GPG-nøgle blive tilføjet uden problemer. Nogle brugere støder dog på problemer, når de downloader MongoDB på grund af en uoverensstemmende GPG-nøgle. Fejl som:
NO_PUBKEY
The following signatures couldn't be verified
public key not available
Sker, når du ikke følger de nøjagtige GPG-tastkommandoer tidligere og i stedet bruger sudo apt-tast fordi moderne Ubuntu ikke anbefaler det.
Tilføj MongoDB Repository
Tilføjelse af MongoDB's Repository opretter en fil, der fortæller Ubuntu, at MongoDB-pakker er live på en bestemt internetadresse. Opret listefilen på /etc/apt/sources.list.d/mongodb-org-8.0.list ved at skrive depotlinjen ind i den vha ekko … | sudo t-shirt...
Det er her, det bliver vanskeligt, da forskellige versioner af Ubuntu kræver en anden variation af denne kommando. Vi vil nu undersøge, hvordan man importerer listefilen på de tre tidligere nævnte versioner af Ubuntu.
Ubuntu 24.04 (Noble)
For at oprette listefilen på Ubuntu 24.04 skal du blot sætte 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 på din terminal.
Dette kan se forvirrende ud, men lad være med at svede det. Når vi deler kommandoen op i sektioner, vil den være krystalklar.
- ekko udskriver tekst
- /etc/apt/sources.list.d er den mappe, hvor Ubuntu gemmer softwarekildedefinitioner. Hver fil med .liste format inde i mappen peger Ubuntu til et bestemt sted at downloade software fra
- Du kan som standard ikke skrive noget i systemmapper som en normal bruger. tee giver brugeren særlig tilladelse til at skrive tekst i systemfiler, mens du bruger sudo
- ædel er kodenavnet til Ubuntu 24.04. Hver Ubuntu-version har et kodenavn som:
| Version | Kodenavn |
| 20.04 | Fokal |
| 22.04 | Jammy |
| 24.04 | Noble |
Hvis du ikke matcher din version af Ubuntu med den rigtige kommandolinje, genkender Ubuntu ikke MongoDB's repository.
Ubuntu 22.04 (Jammy)
Tilføjelse af listefilen til Ubuntu Jammy ser præcis det samme ud, men du skal indtaste kommandolinjen, mens du udskifter ædel med jammy, sådan her:
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
Sørg for, at det er den, der matcher din Ubuntu-version, ellers mislykkes den igen.
Ubuntu 20.04 (Fokal)
Følg de samme trin her, men i stedet for ædel or jammy, sætte ind fokal:
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
Nu med lageret sat op, kan du fortsætte med at installere mongodb-org.
Opdater pakkedatabasen
Nu hvor depotet er genkendt af Ubuntu, skal du genindlæse pakkedatabasen inde i det, så fra nu af inkluderer det også MongoDB. Udsted kommandoen nævnt nedenfor:
sudo apt-get update
Denne kommando forbliver den samme på tværs af alle Ubuntu-versioner, og hvis den springes over, inkluderer Ubuntu ikke MongoDB. Hvis kommandoen gør sit arbejde, skal dit terminaloutput være:
Nu, efter at have genindlæst din pakkedatabase, er det tid til at downloade MongoDB-pakker.
Installer MongoDB Community Server
Der er forskellige MongoDB-udgivelser at installere, men brugere har en tendens til at gå med den seneste stabile version, da den er mere at foretrække. Kør for at installere den seneste stabile version sudo apt-get install -y mongodb-org
Ubuntu har nu downloadet MongoDB-pakkerne, installeret dem, oprettet en MongoDB-brugerkonto og en datamappe og registreret MongoDB som en systemtjeneste. Nu har vi dækket, hvordan man downloader MongoDB på Ubuntu. Lad os nu starte det op.
Sådan starter du MongoDB
Nu, for at køre MongoDB, skal vi fortælle Ubuntus service manager, "systemd", at genkende MongoDB som en baggrundstjeneste, og for at gøre det skal du skrive følgende kommando i din terminal:
sudo systemctl start mongod
Hvis kommandoen gør sit job, åbner Ubuntu nu MongoDB som en baggrundsapplikation. Hvis kommandoen ikke gør sit arbejde, kan du muligvis modtage en fejl svarende til Kunne ikke starte mongod.service.
Dette kan ske på grund af flere almindelige problemer:
- Konfigurationsfil fejl in /etc/mongod.conf (YAML-indrykningsfejl er almindelige)
- Havnekonflikt (port 27017 er allerede optaget)
- Spørgsmål om tilladelse på data eller log-mapper (var/lib/mongodb eller var/log/mongodb)
- Disken er fuld or korrupt filsystemtilstand
Tre kommandoer til at diagnosticere problemet
Det er nemt at sige, hvad der kan være galt med din konfiguration, som MongoDB ikke kører, men det er meget sværere at udpege den nøjagtige årsag. Tre nemme måder, du kan diagnosticere, hvor fejlen kan komme fra, er:
- Tjek servicestatus: sudo systemctl status mongod –no-pager
- Tjek detaljerede logfiler (vigtigst): sudo journalctl -u mongod –no-pager -n 100
- Tjek MongoDBs egen logfil
Men bemærk venligst, at hvis din disk er fuld, eller systemfiler er beskadiget, vil rettelsen handle mere om din hardware i stedet for software. Brugere skal muligvis købe bedre udstyr til deres serveropsætning for at kunne køre MongoDB effektivt, hvis deres nuværende opsætning er forældet.
Hvis det ikke er i dit budget at købe en fuld-on server, kan du overveje at tjekke Cloudzy's Ubuntu VPS for en ren oplevelse på din egen private server med en Ubuntu distro efter din smag. Det følger med 24/7 støtte og op til 40Gbps netværkshastighed, takket være dens NVMe SSD og DDR5 RAM opbevaring.
Desuden har den minimal latenstid, 99.95% oppetid og en 14 dage pengene-tilbage-garanti. Ikke kun det, men det er også tilgængeligt i 12 steder over hele kloden til en overkommelig pris.
Tre mest almindelige rettelser til at få MongoDB til at køre
Der er ingen absolut måde at både genkende dit systems nøjagtige problem med MongoDB og at løse det med et enkelt trin. Så her er nogle almindelige rettelser, du kan bruge til forhåbentlig at få din MongoDB til at begynde at køre.
- YAML-konfigurationsindrykningsfejl. Antag, at du har redigeret /etc/mongod.conf tjek fordybningen igen ved at spørge sudo nano /etc/mongod.conf. YAML-filen er ret følsom over for mellemrum, så sørg for, at der kun er to mellemrum pr. niveau i /etc/mongod.conf.
- Besat havn 27017. Hvis noget andet bruger port 27017, skal du lukke den ned eller ændre MongoDBs port i mongod.conf. Hvis du er usikker på noget, der kører på port 27017, er du velkommen til at køre sudo ss -lntp | grep 27017 at tjekke det ud
- Tilladelsesproblem i databiblioteket. Nogle gange mangler MongoDB tilladelse til at køre på dit system og kører derfor slet ikke. Første løb sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, og genstart derefter MongoDB med sudo systemctl genstart mongod
Ifølge MongoDBs officielle hjemmeside, en anden måde at omgå dette problem på er at genindlæse dæmonen med sudo systemctl daemon-genindlæs, og kør den første kommando, sudo systemctl start mongod, igen.
Hvis der er nej mongod.service, installerede installationen ikke systemd-enheden, så geninstaller mongodb-org pakkesæt.
Med alt det sagt, kan du derefter bekræfte, om MongoDB er startet med succes sudo systemctl status mongod. Hvis terminalen siger aktiv (løbende), du er god til at gå. Men der er stadig nogle yderligere konfigurationer, der gør din oplevelse meget glattere.
Gør MongoDB automatiseret
MongoDB åbner ikke automatisk hver gang du tænder din server; du bliver nødt til at gentage nogle af de nævnte trin hver gang. Du kan eventuelt bede Ubuntu om at starte MongoDB efter opstart på dit skrivebord.
Bare løb sudo systemctl aktivere mongod på din terminal, som fra nu af vil fortælle dit system at køre MongoDB efter hver genstart. Desuden kan du genstarte mongod proces ved at udstede kommandoen sudo systemctl genstart mongod. Derudover skal brugere muligvis følge processen for eventuelle fejl eller vigtige meddelelser ved at gennemgå outputtet i filen:
/var/log/mongodb/mongod.log
Nu hvor alt det er sat op, lad os begynde at bruge din mongod.
Åbning af MongoDB Shell
For at interagere med deres database skal brugere åbne en MongoDB shell ved at udstede kommandoen mongosh. Tænk på det som en dedikeret kommandopromptterminal til MongoDB eller en MySQL-konsol. Alternativt kan du interagere med MongoDB med GUI-værktøjer, såsom MongoDB-drivere. Men hvis du vil interagere med det fra terminalen, mongosh er lavet for at få det til at ske.
Din MongoDB vil nu være fuldt funktionsdygtig, men der er nogle yderligere trin, du skal overveje for at gøre den sikker.
Gør MongoDB godkendt
MongoDB har som standard ingen adgangskodebeskyttelse, fordi du allerede skal have adgang til at oprette en bruger. Her er en enkel måde at få det til at ske
Opret en administratorbruger
Først skal du skifte til admin databasen med:
use admin
Opret derefter en bruger med db.createUser({…}). Udfyld det med din
- Brugernavn
- Adgangskode
- Rolle
For rolle, helst type rod hvilket betyder fuld kontrol eller admin.
Aktiver godkendelse
Nu hvor vi har vores egen brugeropsætning, skal vi redigere /etc/mongod.conf fil. Det er fordi denne fil styrer, hvordan MongoDB opfører sig. Men husk, at ved at redigere filen skal du altid genstarte mongod service bagefter med sudo systemctl genstart mongod. Det, vi skal ændre her, er en parameter kaldet autorisation, der ser sådan ud:
security:
authorization:
For at fuldføre godkendelsesprocessen skal du blot ændre autorisationsværdien sådan:
security:
authorization: enabled
Fra nu af kræver MongoDB et login, så din autentificering er afsluttet. Lad os nu fortsætte til en anden konfiguration, der fuldt ud udnytter MongoDB.
Åbn din firewall
Som tidligere nævnt kører MongoDB på port 27017. Da firewalls blokerer porte som standard, skal du fortælle din firewall om at tillade programmer at køre på 27017. For at få det til at ske, skal du blot udsende kommandoen:
ufw allow from YOUR_IP to any port 27017
Alternativt kan du også udstede kommandoen ufw tillade 27017, men vær forsigtig, for at køre dette vil give hele internettet adgang til den port. Det kan være din sikreste indsats bare at gå med den første mulighed, da den tillader trafik kun at få adgang til porten fra din IP-adresse.
Brugere kan stadig stå over for udfordringer, når de kører MongoDB, såsom problemet med fjernadgang. Hold dig rundt for at finde ud af, hvordan du løser det.
Problem med fjernadgang
MongoDB lanceres med bindIp. bindIp begrænser MongoDB til 127.0.0.1, der kun tillader lokale forbindelser. Derfor, hvis du skulle oprette forbindelse til din MongoDB-server fra et andet sted, ville du ikke få adgang, da MongoDB som standard er konfigureret til kun at tillade on-site forbindelser, medmindre andet er konfigureret.
Igen, gå ud til /etc/mongod.conf, og du vil se tre linjer som denne:
net:
port: 27017
bindIp: 127.0.0.1
Hvis du vil tillade fjernforbindelser til din mongod bruger, skal du ændre værdierne præsenteret ovenfor på denne måde:
net:
port: 27017
bindIp: 0.0.0.0
Genstart derefter din mongod service med sudo systemctl genstart mongod som med enhver anden redigering, du gør på filen.
Du har nu givet din mongod tjenestetilladelse til at acceptere fjernforbindelser. Men vær forsigtig, da du ved at gøre dette vil eksponere din database for hele internettet, hvis du endnu ikke har godkendt din mongod bruger. Der er mange bots, der konstant scanner efter åbne MongoDB-porte, så sørg altid for, at din mongod-bruger har en adgangskode.
Oversigt over store billeder
Tillykke, du har nu gjort alt for at skabe en optimeret MongoDB-tjeneste til dit Ubuntu-system. Her er også et mentalt kort til at spore hvert trin, der præsenteres i denne artikel.
| Kommando | Hvad det gør |
| passende opdatering | Opdater softwarelisten |
| passende installation | Installer software |
| krølle | Download fil |
| gpg | Administrer krypteringsnøgler |
| ekko | Udskriv tekst |
| tee | Skriv til beskyttet fil |
| systemctl start | Start service |
| systemctl aktivere | Start ved opstart |
| systemctl status | Tjek service |
| mongosh | Indtast MongoDB shell |
| Redigere /etc/mongod.conf | Aktiver godkendelse |
| ufw | Administrer firewall |
| bindIp | Tillad fjernadgang |
Det burde hjælpe dig til bedre at forstå hele processen. Men hvis opsætning af MongoDB på egen hånd er for meget for dig, så sørg for at skrue op for Cloudzy's MongoDB VPS til din egen private Ubuntu 24.04 LTS-server med MongoDB forudinstalleret.
Det følger med 99.95% oppetid, 24/7 støtte, og en 14 dage pengene-tilbage-garanti. Udover det understøtter den op til 40 Gbps af båndbredde takket være dens DDR5 RAM og NVMe SSD opbevaring. Du skal ikke engang bekymre dig om, hvor du bor, for den er også tilgængelig i 12 steder over hele verden til en overkommelig pris.
Men med alt det sagt, har du endelig formået at opsætte din egen dygtige MongoDB-tjeneste udstyret med enhver konfiguration for at understøtte arbejdsbelastninger og virksomheder på produktionsniveau.