Du har besluttet at bruge MongoDB, hvilket er glimrende alternative to MariaDB til at bygge en MERN stack-app, en analyseplattform eller ethvert dokumentbaseret system, men du er løbet ind i problemer med almindelig Linux kommandolinje og utallige terminalfejl.
Men det er okay, for denne guide indeholder alt, hvad du skal vide fra A til Z for at installere MongoDB på Ubuntu.
MongoDB bruger X.Y.Z versionering. 8.0 er en vigtig release-serie, og 8.2 er en mindre release inden for den 8.0-cyklus. Mindre releases tilføjer features inden for samme major-cyklus og er fra og med 8.0 også tilgængelige til on-prem-installationer til særlige use cases (f.eks. 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 Curl. Disse værktøjer giver Ubuntu tilladelse til at downloade MongoDB, fordi Ubuntu's egen mongodb pakke ikke vedligeholdes af MongoDB Inc. og konflikter med den officielle mongodb-org pakke. Hvis du allerede har installeret mongodb skal du huske at fjerne den.
Kør derefter kommandoen sudo apt-get install gnupg curl. Curl er et værktøj til at downloade filer fra internettet og er nødvendigt for at hente MongoDB's sikkerhedsnøgle. GnuPG er det, som Ubuntu bruger til at verificere softwarens autenticitet. Hvis GnuPG mangler, kan Ubuntu ikke verificere MongoDB-pakker.
Sørg for, at din terminal har installeret GnuPG og Curl. Hvis det er tilfældet, skal det se sådan ud:
Importering af MongoDB GPG-nøgle
Ubuntu's pakkehåndterer, APT, bruger GPG-nøgler til at verificere pakker før installation. Uden denne GPG-nøgle tillader Ubuntu ikke, at MongoDB's repositories tilføjes. Skriv 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 dit terminaloutput se sådan ud:
Kort sagt downloader denne kommando MongoDB's sikkerhedssignatur, konverterer den til et format, som Ubuntu kan læse, og gemmer den i en sikker systemmappe. Her er en opdeling af kommandolinjen sektion for sektion:
- curl -fsSL URL downloader MongoDB's officielle nøgle
- –dearmor konverterer nøglen fra tekstformat til binær, så Ubuntu kan forstå den
- -o /usr/share/keyrings/mongodb-server-8.0.gpg gemmer den binære fil i en mappe, hvor Ubuntu lagrer betroede nøgler
Hvis du udfører alle kommandoer korrekt, tilføjes den offentlige GPG-nøgle uden problemer. Nogle brugere oplever dog fejl, når de downloader MongoDB på grund af en ikke-matchende 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 præcise GPG key-kommandoer fra før og bruger noget andet i stedet sudo apt-key fordi moderne Ubuntu ikke anbefaler det.
Tilføj MongoDB Repository
Når du tilføjer MongoDB's Repository, oprettes en fil, der fortæller Ubuntu, at MongoDB-pakker er tilgængelige på en bestemt internetadresse. Opret listfilen på /etc/apt/sources.list.d/mongodb-org-8.0.list ved at skrive repository-linjen ind i det ved hjælp af echo … | sudo tee …
Det er her, det bliver kompliceret, fordi forskellige versioner af Ubuntu kræver en anden variation af denne kommando. Vi skal nu se på, hvordan du importerer listfilen på de tre versioner af Ubuntu, som vi nævnte tidligere.
Ubuntu 24.04 (Noble)
For at oprette listfilen på Ubuntu 24.04 skal du blot 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.
Det kan se uoverskueligt ud, men der er ingen grund til at bekymre sig. Når vi først opdeler kommandoen i mindre dele, bliver det helt klart.
- echo udskriver tekst
- /etc/apt/sources.list.d er mappen, hvor Ubuntu gemmer definitioner af softwarekilde. Hver fil med .list formatet i mappen peger Ubuntu til et specifikt sted, hvor du kan hente software fra
- Som almindelig bruger kan du som standard ikke skrive noget i systemfoldere. t-shirt giver brugeren særlig tilladelse til at skrive tekst til systemfiler, mens sudo
- edel er kodenavnet for Ubuntu 24.04. Hver Ubuntu-version har et kodenavn som:
| Udgave | Kodenavn |
| 20.04 | Fokus |
| 22.04 | Jammy |
| 24.04 | Ædelmodig |
Hvis din version af Ubuntu ikke matcher det rigtige Command line, kan Ubuntu ikke genkende MongoDB's repository.
Ubuntu 22.04 (Jammy)
Tilføjelse af listfilen til Ubuntu Jammy ser ud til at være det samme, men du skal køre kommandoen mens du erstatter edel med jammyI don't see any English text to translate in your message. Could you please provide the English text you'd like me to translate to Danish?
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 version, der matcher din Ubuntu, ellers mislykkes det igen.
Ubuntu 20.04 (Focal)
Følg de samme trin her, men i stedet for edel or jammy, sæt i 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
Nu hvor repositoryet er konfigureret, kan du gå videre til installationen mongodb-org.
Opdater pakkedatabasen
Nu hvor repositoryet er genkendt af Ubuntu, skal du genindlæse pakkedatabasen, så den fra nu af også omfatter MongoDB. Kør kommandoen nedenfor:
sudo apt-get update
Denne kommando er ens på tværs af alle Ubuntu-versioner, og hvis den springes over, vil Ubuntu ikke omfatte MongoDB. Hvis kommandoen virker, bør dit terminaloutput være:
Nu hvor du har genindlæst pakkedatabasen, er det tid til at hente MongoDB-pakker.
Installer MongoDB Community Server
Der findes forskellige MongoDB-versioner at installere, men brugere vælger typisk den seneste stabile version, da den er at foretrække. For at installere den seneste stabile version skal du køre sudo apt-get install -y mongodb-org
Ubuntu har nu hentet MongoDB-pakkerne, installeret dem, oprettet en MongoDB-brugerkonto og en datamappe og registreret MongoDB som en systemtjeneste. Vi har nu dækket, hvordan du henter MongoDB på Ubuntu. Lad os nu starte det.
Sådan startes MongoDB
For at køre MongoDB skal du bede Ubuntu's tjenestemanager, "systemd", om at genkende MongoDB som en baggrundsapp. Skriv følgende kommando i din terminal:
sudo systemctl start mongod
Hvis kommandoen virker, vil Ubuntu nu åbne MongoDB som en baggrundsapp. Hvis kommandoen ikke virker, kan du muligvis få en fejl som Mislykket start af mongod.service.
Dette kan skyldes flere almindelige problemer:
- Konfigurationsfil-fejl in /etc/mongod.conf (indenteringsfejl i YAML er normale)
- Portkonflikt (port 27017 er allerede optaget)
- Tilladelsesproblem på data- eller logmapper (var/lib/mongodb eller var/log/mongodb)
- Disk fuld or beskadiget filsystemtilstand
Tre kommandoer til diagnosticering af problemet
Det er nemt at sige, hvad der kan være galt med din konfiguration, så MongoDB ikke kører, men det er meget sværere at fastslå den præcise årsag. Her er tre nemme måder, du kan diagnosticere, hvor fejlen kan komme fra:
- Tjek tjenestens status: sudo systemctl status mongod –no-pager
- Tjek detaljerede logfiler (vigtigste): sudo journalctl -u mongod –no-pager -n 100
- Tjek MongoDB's egen logfil
Vær dog opmærksom på, at hvis din disk er fuld eller systemfiler er beskadiget, handler løsningen mere om hardwaren end softwaren. Hvis dit nuværende setup er forældet, skal brugere muligvis investere i bedre udstyr til deres serveropsætning for at køre MongoDB effektivt.
Hvis en fuldt udbygget server ikke passer til dit budget, kan du overveje at tjekke Cloudzy's Ubuntu VPS for en klar oplevelse på din egen private server med en Ubuntu-distribution efter eget valg. Det kommer med 24/7 support og op til 40Gbps netværkshastighed takket være dets NVMe SSD og DDR5 RAM lagring.
Desuden har det minimal latency, 99.95% oppetid og en 14-dages pengene-tilbage-garanti. Og ikke nok med det, det er også tilgængeligt i 12 steder rundt omkring i verden til en overkommelig pris.
Tre mest almindelige løsninger til at få MongoDB til at køre
Der er ingen sikker måde at både identificere dit systems præcise problem med MongoDB og løse det i et enkelt trin. Her er derfor nogle almindelige løsninger, du kan prøve for forhåbentlig at få MongoDB til at køre igen.
- YAML-konfigurationsindenteringsfejl. Antag at du redigerede /etc/mongod.conf dobbelttjek indenteringen ved at køre sudo nano /etc/mongod.conf. YAML-filen er ret følsom over for whitespace, så sørg for at der kun er to mellemrum per niveau i /etc/mongod.conf.
- Port 27017 er optaget. Hvis noget andet bruger port 27017, skal du lukke det ned eller ændre MongoDB's port i mongod.conf. Hvis du er usikker på hvad der køres på port 27017, kan du roligt køre sudo ss -lntp | grep 27017 at tjekke det ud
- Tilladelsesproblem i datamappen. Nogle gange mangler MongoDB tilladelse til at køre på dit system og kører derfor slet ikke. Kør først sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb, og genstart derefter MongoDB med sudo systemctl restart mongod
Ifølge MongoDB's officielle hjemmeside, en anden måde at løse dette på er at genindlæse daemonen med sudo systemctl daemon-reload, og kør den første kommando, sudo systemctl start mongod, igen.
Hvis der ikke er mongod.service, installationen placerede ikke systemd-enheden, så geninstaller mongodb-org pakkesæt
Nu kan du verificere, om MongoDB er startet korrekt med sudo systemctl status mongod. Hvis terminalen viser aktiv (kører), er du klar til at gå videre. Der er dog nogle få yderligere konfigurationer, der gør dine oplevelser meget glattere.
Gør MongoDB automatiseret
MongoDB åbnes ikke automatisk, hver gang du tænder din server. Du skal gentage nogle af trinnene hver gang. Du kan eventuelt fortælle Ubuntu at starte MongoDB efter opstart til skrivebordet.
Blot kør sudo systemctl enable mongod på din terminal, som fra nu af vil fortælle dit system at køre MongoDB efter hver genstart. Du kan desuden genstarte mongod processen ved at udføre kommandoen sudo systemctl restart mongod. Derudover kan brugere blive nødt til at følge processen for eventuelle fejl eller vigtige meddelelser ved at gennemse output 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 sin database skal brugere åbne en MongoDB shell ved at udføre kommandoen mongosh. Tænk på det som en dedikeret kommandoprompt-terminal til MongoDB eller en MySQL konsol. Alternativt kan du interagere med MongoDB ved hjælp af GUI-værktøjer, såsom MongoDB-drivere. Men hvis du vil interagere med det fra terminalen, mongosh er designet til at få det til at ske.
Din MongoDB vil nu være fuldt funktionel, men der er nogle yderligere trin, du skal overveje for at gøre det sikkert.
Gør MongoDB godkendt
MongoDB har som standard ingen adgangskodebeskyttelse, fordi du allerede skal have adgang for at oprette en bruger. Her er en simpel måde at gøre det på.
Opret en administrator-bruger
Først skal du skifte til administrator-databasen med:
use admin
Opret derefter en bruger med db.createUser({…}). Udfyld det med dine
- Brugernavn
- Adgangskode
- Rolle
For rolle anbefales det at skrive root hvilket betyder fuld kontrol eller administrator-rettigheder.
Aktivér godkendelse
Nu hvor vi har oprettet vores egen bruger, skal vi redigere /etc/mongod.conf filen. Det skyldes, at denne fil styrer, hvordan MongoDB fungerer. Husk dog, at når du redigerer filen, skal du altid genstarte mongod tjenesten bagefter med sudo systemctl restart mongod. Det, vi skal ændre her, er en parameter kaldet authorization, der ser sådan ud:
security:
authorization:
For at fuldføre godkendelsesprocessen skal du blot ændre authorization-værdien sådan:
security:
authorization: enabled
Fra nu af kræver MongoDB login, så din godkendelse er færdig. Lad os nu gå videre til en anden konfiguration, der udnytter MongoDB fuldt ud.
Åbn din firewall
Som nævnt tidligere kører MongoDB på port 27017. Da firewalls blokerer porte som standard, skal du fortælle din firewall at tillade applikationer at køre på 27017. For at gøre det skal du blot køre kommandoen:
ufw allow from YOUR_IP to any port 27017
Du kan også køre kommandoen ufw allow 27017men vær forsigtig, fordi dette giver hele internettet adgang til den port. Det er nok sikreste at holde dig til det første alternativ, da det kun tillader trafik til porten fra din IP-adresse.
Brugere kan stadig støde på problemer, når de kører MongoDB, såsom problemer med fjernaccces. Bliv hængende for at finde ud af, hvordan du løser det.
Fjernaccesproblem
MongoDB startes med bindIp. bindIp begrænser MongoDB til 127.0.0.1hvilket tillader kun lokale forbindelser. Hvis du derfor skulle forbinde til din MongoDB-server et andet sted, ville du ikke få adgang, fordi MongoDB som standard er konfigureret til at tillade kun lokale forbindelser, medmindre det er konfigureret anderledes.
Gå igen til /etc/mongod.confog du vil se tre linjer sådan:
net:
port: 27017
bindIp: 127.0.0.1
Hvis du vil tillade fjernforbindelser til din mongod bruger, skal du ændre værdierne ovenfor sådan her:
net:
port: 27017
bindIp: 0.0.0.0
Herefter skal du genstarte din mongod service med sudo systemctl restart mongod som ved alle andre redigeringer i filen.
Du har nu givet din mongod service tilladelse til at acceptere fjernforbindelser. Men vær forsigtig, for dermed åbner du din database for hele internettet, hvis du ikke allerede 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.
Overordnet sammenfatning
Tillykke, du har nu gjort alt for at oprette en optimeret MongoDB-service til dit Ubuntu-system. Her er også et mentalt kort over hvert trin i denne artikel.
| Kommando | Hvad det gør |
| apt opdatering | Opdater softwareliste |
| apt installere | Installer software |
| curl | Download fil |
| gpg | Administrer krypteringsnøgler |
| echo | Udskriv tekst |
| t-shirt | Skriv til beskyttet fil |
| systemctl start | Start tjeneste |
| systemctl enable | Start ved opstart |
| systemctl status | Kontroller service |
| mongosh | Åbn MongoDB-shell |
| Rediger /etc/mongod.conf | Aktivér godkendelse |
| ufw | Administrer firewall |
| bindIp | Tillad fjernacces |
Det burde hjælpe dig med at forstå hele processen bedre. Men hvis det er for meget at opsætte MongoDB selv, skal du være sikker på at starte Cloudzy's MongoDB VPS til din egen private Ubuntu 24.04 LTS-server med MongoDB forinstalleret.
Det kommer med 99.95% uptime, 24/7 support og en 14-dages pengene-tilbage-garanti. Udover det understøtter det op til 40 Gbps båndbredde takket være sin DDR5 RAM og NVMe SSD lagerplads. Du behøver slet ikke at bekymre dig om, hvor du bor, for det er også tilgængeligt i 12 lokationer rundt om i verden til en overkommelig pris.
Men alt i alt har du nu succesfuldt opsæt din egen levedygtige MongoDB-service udstyret med alle konfigurationer til at understøtte produktionsniveau-arbejdsbelastninger og virksomheder.