50% rabat alle planer, begrænset periode. Fra kun $2.48/mo
12 min tilbage
Databaser og Analytics

Sådan installeres MongoDB på de tre seneste versioner af Ubuntu (trin-for-trin)

Jim Schwarz By Jim Schwarz 12 min læsning
Originalt symbol for MongoDB præsenteret på en futuristisk server til installation af MongoDB på Ubuntu + tagline om, hvad du kan forvente af artiklen + artikeltitel + Cloudzy-brandlogo

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:Ubuntu terminaloutput efter tilføjelse af GnuPG og Curl

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:Ubuntu terminal efter vellykket tilføjelse af MongoDB's GPG-nøgle.

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:

  1. curl -fsSL URL downloader MongoDB's officielle nøgle
  2. –dearmor konverterer nøglen fra tekstformat til binær, så Ubuntu kan forstå den
  3. -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.

  1. echo udskriver tekst
  2. /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
  3. 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
  4. 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:Ubuntu terminaloutput efter kørsel af sudo apt-get update

 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 problemetFuturistisk serveropsætning + tre Ubuntu terminalkommandoer + cloud med opgraderings-path skrivning.

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:

  1. Tjek tjenestens status: sudo systemctl status mongod –no-pager
  2. Tjek detaljerede logfiler (vigtigste): sudo journalctl -u mongod –no-pager -n 100
  3. 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.

  1. 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.
  2. 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
  3. 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 automatiseretFuturistisk serveropsætning med MongoDB automatiseringssymbol + terminal med MongoDB kommando + logfil

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 godkendtMongoDB godkendelsesproces + lås-ikon + bekræftelse af godkendelse.

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.

FjernaccesproblemServeropsætning med 3 skærme, der konfigurerer MongoDB's fjernaccesindstillinger + terminalkommandoer.

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.

Del

Mere fra bloggen

Læs videre.

Smart datahåndtering til din virksomhed: «Cloud-lignende» lager- og backup-strategier med VPS
Databaser og Analytics

Smart datahåndtering til din virksomhed: «Cloud-lignende» lager- og backup-strategier med VPS

VPS til sikker virksomhedsdatahåndtering er den strategi, jeg anbefaler, når en virksomhed beslutter sig for at stoppe med at jonglere filer på tværs af computere, e-mail-vedhæftelser og glemte mapper

Rexa CyrusRexa Cyrus 7 min læsning
Materialiseret View vs. View
Databaser og Analytics

Materialiseret View vs. View: Forståelse af Deres Rolle i Databaser

I databasesystemer gemmer en materialiseret view som et databaseobjekt de forbehandlede resultater af en forespørgsel som en fysisk tabel. Fordi dataene er faktisk gemt på disk, komplekse

Ivy JohnsonIvy Johnson 7 min læsning
SnowFlake mod DataBricks
Databaser og Analytics

Databricks vs Snowflake: Objektivt sammenligning til dataprofessionelle 🧱❄️

For virksomheder, der bruger data til at træffe beslutninger - uanset om det er e-handelsplatforme, der sporer kundeadfærd, finansielle institutioner, der forudsiger trends, eller teknologivirksomheder

Allan Van KirkAllan Van Kirk 13 min læsning

Klar til at implementere? Fra $2,48/mdr.

Uafhængig cloud siden 2008. AMD EPYC, NVMe, 40 Gbps. 14-dages pengene-tilbage-garanti.