50% korting alle abonnementen, tijdelijk aanbod. Vanaf $2.48/mo
12 min over
Databases & Analytics

MongoDB installeren op de drie nieuwste versies van Ubuntu (stap voor stap)

Jim Schwarz By Jim Schwarz 12 minuten lezen
Het originele symbool van MongoDB op een futuristische server om MongoDB te installeren op Ubuntu + tagline over wat u in het artikel kunt verwachten + artikeltitel + Cloudzy merklogo

Dus je hebt besloten MongoDB te gebruiken, een uitstekende alternative to MariaDB voor het bouwen van een MERN stack-app, een analyseplatform of een ander document-gebaseerd systeem, maar je loopt vast op de vertrouwde Linux-commandoregel en eindeloze terminalfouten. 

Geen zorgen, want deze gids geeft je alles wat je moet weten van A tot Z om MongoDB op Ubuntu te installeren.

MongoDB gebruikt X.Y.Z versiebeheer 8.0 is een belangrijk release-reeks, en 8.2 is een klein release binnen die 8.0-cyclus. Minor releases voegen functies toe binnen dezelfde major-cyclus en worden vanaf 8.0 ook aangeboden voor on-prem-installaties voor specifieke gebruiksscenario's (bijvoorbeeld Search en Vector Search). MongoDB 8.0 op Ubuntu ondersteunt 24.04 (Noble), 22.04 (Jammy) en 20.04 (Focal) op 64-bit systemen, met ARM64-ondersteuning op bepaalde platformen.

GnuPG en Curl vereisten

Voordat je het officiële mongodb-org pakket installeert, heeft Ubuntu twee vereisten: GnuPG en Curl. Deze tools geven Ubuntu toestemming om MongoDB te downloaden, omdat het eigen mongodb pakket van Ubuntu niet wordt onderhouden door MongoDB Inc. en conflicteert met het officiële mongodb-org pakket. Als je al mongodb hebt geïnstalleerd, verwijder het dan eerst.

Voer vervolgens het volgende commando uit sudo apt-get install gnupg curl. Curl is een tool om bestanden van internet te downloaden en is nodig om de beveiligingssleutel van MongoDB op te halen. GnuPG gebruikt Ubuntu om de authenticiteit van software te verifiëren. Als GnuPG ontbreekt, kan Ubuntu de pakketten van MongoDB niet verifiëren.

Controleer of GnuPG en Curl correct zijn geïnstalleerd in je terminal. Als dat het geval is, ziet de uitvoer er als volgt uit:Terminaluitvoer van Ubuntu na het installeren van GnuPG en Curl

De GPG-sleutel van MongoDB importeren

De pakketbeheerder van Ubuntu, APT, gebruikt GPG-sleutels om pakketten te verifiëren vóór installatie. Zonder deze GPG-sleutel weigert Ubuntu de repositories van MongoDB toe te voegen. Voer het volgende commando in je terminal in om de sleutel toe te voegen:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor

Als het gelukt is, ziet de terminaluitvoer er als volgt uit:Terminal van Ubuntu na het succesvol toevoegen van de GPG-sleutel van MongoDB.

Kort gezegd downloadt dit commando de beveiligingshandtekening van MongoDB, zet deze om naar een formaat dat Ubuntu begrijpt, en slaat het op in een beveiligde systeemmap. Hieronder een toelichting per onderdeel van de opdrachtregel:

  1. curl -fsSL URL downloadt de officiële sleutel van MongoDB
  2. –dearmor converteert de sleutel van tekstformaat naar binair, zodat Ubuntu deze kan verwerken
  3. -o /usr/share/keyrings/mongodb-server-8.0.gpg slaat het binaire bestand op in de map waar Ubuntu vertrouwde sleutels bewaart

Als je alle commando's exact overneemt, wordt de publieke GPG-sleutel zonder problemen toegevoegd. Sommige gebruikers lopen echter tegen problemen aan bij het downloaden van MongoDB door een niet-overeenkomende GPG-sleutel. Fouten zoals:

NO_PUBKEY
The following signatures couldn't be verified
public key not available

Ontstaan wanneer je de exacte GPG-sleutelopdrachten eerder niet hebt gevolgd en in plaats daarvan sudo apt-key gebruikt, wat moderne versies van Ubuntu niet meer aanbevelen.

De repository van MongoDB toevoegen

Door de repository van MongoDB toe te voegen, maak je een bestand aan dat Ubuntu vertelt waar de pakketten van MongoDB te vinden zijn. Maak het lijstbestand aan op /etc/apt/sources.list.d/mongodb-org-8.0.list door de repositoryregel erin te schrijven via echo … | sudo tee …

Hier wordt het iets lastiger, omdat verschillende versies van Ubuntu een andere variant van dit commando vereisen. We bespreken nu hoe je het lijstbestand importeert voor de drie eerder genoemde versies van Ubuntu.

Ubuntu 24.04 (Noble)

Om het lijstbestand aan te maken op Ubuntu 24.04, voer je het volgende in: 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 op uw terminal.

Dit ziet er misschien ingewikkeld uit, maar maak je geen zorgen. Als we het commando opsplitsen in onderdelen, wordt alles meteen duidelijk.

  1. echo prints tekst
  2. /etc/apt/sources.list.d is de map waarin Ubuntu de definities van softwarebronnen opslaat. Elk bestand met .list als indeling in deze map wijst Ubuntu naar een specifieke locatie om software van te downloaden.
  3. Als gewone gebruiker kun je standaard niets schrijven naar systeemmappen. t-shirt geeft de gebruiker speciale rechten om tekst naar systeembestanden te schrijven, terwijl je sudo
  4. edel is de codenaam voor Ubuntu 24.04. Elke versie van Ubuntu heeft een codenaam, zoals:
Versie Codenaam
20.04 Fokaalpunt
22.04 Jammy
24.04 Edel

Als je de verkeerde versie van Ubuntu gebruikt bij de opdrachtregel, herkent Ubuntu de repository van MongoDB niet.

Ubuntu 22.04 (Jammy)

Het toevoegen van het lijstbestand aan Ubuntu Jammy verloopt op dezelfde manier, maar je moet de opdrachtregel invoeren met edel met jammyIk zie dat je een lege instructie hebt gegeven (alleen een komma en "like this:"). Kun je alstublieft het Engelse tekstfragment geven dat ik moet vertalen naar het Nederlands?

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

Zorg dat dit overeenkomt met jouw versie van Ubuntu, anders mislukt het opnieuw.

Ubuntu 20.04 (Focal)

Volg hier dezelfde stappen, maar gebruik in plaats van edel or jammy, zet in 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 de repository is ingesteld, kun je doorgaan met de installatie van mongodb-org.

De pakketdatabase vernieuwen

Nu Ubuntu de repository herkent, moet je de pakketdatabase opnieuw laden zodat MongoDB voortaan ook daarin is opgenomen. Voer het onderstaande commando uit:

sudo apt-get update

Dit commando is hetzelfde voor elke versie van Ubuntu. Als je het overslaat, neemt Ubuntu MongoDB niet op. Als het commando correct is uitgevoerd, ziet je terminaluitvoer er als volgt uit:Ubuntu terminaluitvoer na het uitvoeren van sudo apt-get update

 Nu de pakketdatabase is herladen, is het tijd om de MongoDB-pakketten te downloaden.

MongoDB Community Server installeren

Er zijn meerdere versies van MongoDB beschikbaar, maar de meeste gebruikers kiezen voor de nieuwste stabiele versie. Voer het volgende uit om die te installeren: sudo apt-get install -y mongodb-org

Ubuntu heeft nu de MongoDB-pakketten gedownload en geïnstalleerd, een gebruikersaccount en gegevensmap voor MongoDB aangemaakt, en MongoDB als systeemservice geregistreerd. Je weet nu hoe je MongoDB op Ubuntu installeert. Laten we het nu opstarten.

MongoDB starten

Om MongoDB te kunnen draaien, moeten we Ubuntu's servicebeheerder, "systemd", laten weten dat MongoDB als achtergrondservice moet worden uitgevoerd. Voer hiervoor het volgende commando in je terminal in:

sudo systemctl start mongod

Als het commando slaagt, opent Ubuntu MongoDB voortaan als achtergrondproces. Lukt dat niet, dan verschijnt er mogelijk een foutmelding zoals Kan mongod.service niet starten..

Dit kan door een aantal veelvoorkomende oorzaken komen:

  • Fout in configuratiebestand in /etc/mongod.conf (inspringing-fouten in YAML komen vaak voor)
  • Poortconflict (poort 27017 is al in gebruik)
  • Machtigingsprobleem op de data- of logmappen (var/lib/mongodb of var/log/mongodb)
  • Schijf vol or beschadigd bestandssysteemstatus

Drie commando's om het probleem te diagnosticerenFuturistische serveropstelling met drie Ubuntu-terminalcommando's en een cloud met upgrade-pad.

Het is makkelijk om te zeggen wat er mis kan zijn met je configuratie waardoor MongoDB niet start, maar de exacte oorzaak achterhalen is een stuk moeilijker. Drie manieren om de fout te localiseren zijn:

  1. Controleer de servicestatus: sudo systemctl status mongod –no-pager
  2. Bekijk de gedetailleerde logs (het belangrijkste): sudo journalctl -u mongod –no-pager -n 100
  3. Bekijk het eigen logbestand van MongoDB

Houd er rekening mee dat als je schijf vol is of systeembestanden beschadigd zijn, de oplossing eerder op hardwareniveau ligt dan op softwareniveau. Gebruikers met een verouderde setup moeten mogelijk betere apparatuur aanschaffen om MongoDB soepel te draaien. 

Als de aanschaf van een volledige server buiten je budget valt, bekijk dan de Ubuntu VPS van Cloudzy voor een schone omgeving op je eigen privéserver met een Ubuntu-distributie naar keuze. Het wordt geleverd met 24/7 ondersteuning en tot 40Gbps netwerksnelheid, dankzij de NVMe SSD en DDR5 RAM opslag.

Daarnaast is de latency minimaal, 99.95% Uptime en een 14-daags geld-terug-garantie. Bovendien is het beschikbaar in 12 locaties wereldwijd, tegen een scherpe prijs.

De drie meest voorkomende oplossingen om MongoDB werkend te krijgen

Er is geen universele manier om het exacte probleem van je systeem met MongoDB te identificeren en met één stap op te lossen. Hier zijn een aantal veelvoorkomende oplossingen die je kunt proberen om MongoDB alsnog aan de gang te krijgen.

  1. Insprингfout in YAML-configuratie. Stel dat je /etc/mongod.conf controleer de inspringing opnieuw door het volgende uit te voeren: sudo nano /etc/mongod.conf. Het YAML-bestand is gevoelig voor witruimte, dus zorg ervoor dat er per niveau precies twee spaties worden gebruikt in /etc/mongod.conf.
  2. Bezette poort 27017. Als iets anders poort 27017 al in gebruik heeft, sluit dat proces dan af of pas de poort van MongoDB aan in mongod.conf. Als je niet zeker weet wat er op poort 27017 draait, kun je het volgende uitvoeren: sudo ss -lntp | grep 27017 om het uit te proberen
  3. Rechtenproblemen in de datamap. Soms heeft MongoDB onvoldoende rechten om op je systeem te draaien en start het daardoor helemaal niet. Voer eerst sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodbuit en herstart daarna MongoDB met sudo systemctl restart mongod

Volgens de officiële website van MongoDB. Een andere aanpak is om de daemon opnieuw te laden met sudo systemctl daemon-reload, en voer vervolgens de eerste opdracht uit, sudo systemctl start mongod, nogmaals.

Als er geen mongod.service. De installatie heeft de systemd-unit niet geplaatst. Installeer de mongodb-org pakketset

Daarna kun je controleren of MongoDB succesvol is gestart met sudo systemctl status mongod. Als de terminal meldt actief (actief). Dan zit je goed. Er zijn echter nog een aantal verdere instellingen die je ervaring aanzienlijk verbeteren.

MongoDB AutomatiserenFuturistisch serveroverzicht met MongoDB automatiseringssymbool + terminal met MongoDB commando + logbestand

MongoDB start niet automatisch op wanneer je je server opstart; je moet bepaalde stappen elke keer opnieuw uitvoeren. Je kunt Ubuntu optioneel instellen om MongoDB automatisch te starten na het opstarten van je desktop.

Voer gewoon uit sudo systemctl enable mongod in je terminal. Vanaf dat moment zorgt het systeem ervoor dat MongoDB na elke herstart wordt uitgevoerd. Daarnaast kun je het mongod proces herstarten met het commando sudo systemctl restart mongod. Gebruikers kunnen ook eventuele fouten of belangrijke meldingen bekijken in het logbestand:

/var/log/mongodb/mongod.log

Nu alles is ingesteld, kun je aan de slag met je mongod.

De MongoDB Shell Openen

Om met de database te werken, moeten gebruikers een MongoDB shell openen met het commando mongosh. Zie het als een speciale commandoregel voor MongoDB, vergelijkbaar met een MySQL console. Je kunt ook met GUI-tools werken, zoals MongoDB drivers. Maar als je liever vanuit de terminal werkt, mongosh is daarvoor de aangewezen optie.

Je MongoDB is nu volledig operationeel, maar er zijn nog een paar extra stappen nodig om het goed te beveiligen.

MongoDB Authenticatie InstellenMongoDB authenticatieproces + slotpictogram + bevestiging van authenticatie.

MongoDB heeft standaard geen wachtwoordbeveiliging, omdat je al toegang nodig hebt om een gebruiker aan te maken. Zo stel je dat in:

Een Beheerder Aanmaken

Schakel eerst over naar de admin-database met:

use admin

Maak vervolgens een gebruiker aan met db.createUser({…}). Vul je

  • Gebruikersnaam
  • Wachtwoord
  • Rol

Geef voor de rol bij voorkeur root op, wat volledige beheerderstoegang betekent.

Verificatie inschakelen

Nu we een eigen gebruiker hebben aangemaakt, moeten we het /etc/mongod.conf bestand aanpassen. Dit bestand bepaalt hoe MongoDB zich gedraagt. Houd er rekening mee dat je na elke wijziging in dit bestand altijd de mongod service daarna met sudo systemctl restart mongod. Wat we hier moeten aanpassen is één parameter genaamd authorization, die er zo uitziet:

security:

  authorization:

Voer de volgende wijziging door om het authenticatieproces af te ronden:

security:

  authorization: enabled

Vanaf nu vereist MongoDB een login, dus je authenticatie is voltooid. Laten we nu doorgaan naar een andere configuratie die MongoDB volledig benut.

Stel je firewall in

Zoals eerder vermeld, draait MongoDB op poort 27017. Firewalls blokkeren poorten standaard, dus je moet je firewall vertellen dat applicaties op poort 27017 mogen draaien. Voer hiervoor het volgende commando uit:

ufw allow from YOUR_IP to any port 27017

Je kunt ook het volgende commando gebruiken ufw allow 27017, maar wees voorzichtig: hiermee geef je het volledige internet toegang tot die poort. De eerste optie is veiliger, omdat die verkeer alleen toestaat vanaf jouw IP-adres.

Gebruikers kunnen nog steeds problemen ondervinden bij het uitvoeren van MongoDB, zoals het probleem met externe toegang. Lees verder om te zien hoe je dit oplost.

Probleem met externe toegangServerconfiguratie met 3 monitoren voor het instellen van de externe toegangsinstellingen van MongoDB en terminalopdrachten.

MongoDB start op met bindIp. bindIp beperkt MongoDB tot 127.0.0.1, waardoor alleen lokale verbindingen zijn toegestaan. Als je dus vanaf een andere locatie verbinding wilt maken met je MongoDB-server, wordt de toegang geweigerd. MongoDB staat standaard namelijk alleen lokale verbindingen toe, tenzij je dit anders configureert.

Ga opnieuw naar /etc/mongod.conf, en je ziet drie regels zoals deze:

net:

  port: 27017

  bindIp: 127.0.0.1

Als je externe verbindingen wilt toestaan voor je mongod gebruiker, pas dan de bovenstaande waarden als volgt aan:

net:

  port: 27017

  bindIp: 0.0.0.0

Start daarna je mongod service met sudo systemctl restart mongod opnieuw op, net als bij elke andere wijziging die je in het bestand aanbrengt.

Je hebt je mongod service nu toestemming gegeven om externe verbindingen te accepteren. Wees echter voorzichtig: als je je mongod gebruiker nog niet hebt geverifieerd, stel je hiermee je database bloot aan het hele internet. Er zijn veel bots die voortdurend scannen op open MongoDB-poorten, dus zorg er altijd voor dat je mongod-gebruiker een wachtwoord heeft.

Samenvatting

Gefeliciteerd, je hebt nu alles gedaan om een geoptimaliseerde MongoDB-service voor je Ubuntu-systeem in te stellen. Hier is ook een overzicht van alle stappen die in dit artikel zijn behandeld.

Commando Wat het doet
apt bijwerken Verniuw softwarelijst
apt installeren Software installeren
curl Download bestand
gpg Versleutelingssleutels beheren
echo Tekst afdrukken
t-shirt Schrijven naar beveiligd bestand
systemctl start Service starten
systeemctl inschakelen Start bij opstarten
systemctl status Controleer service
mongosh MongoDB-shell openen
Bewerken /etc/mongod.conf Verificatie inschakelen
ufw Firewall beheren
bindIp Externe toegang toestaan

Dat geeft je een beter beeld van het hele proces. Maar als het zelf instellen van MongoDB te veel is, start dan een Cloudzy MongoDB VPS op voor je eigen privé Ubuntu 24.04 LTS-server met MongoDB vooraf geïnstalleerd.

Het wordt geleverd met 99.95% uptime, 24/7 ondersteuning en een 14-daags geld-terug-garantie. Daarnaast ondersteunt het tot 40 Gbps aan bandbreedte dankzij zijn DDR5 RAM en NVMe SSD opslag. Waar je ook woont, dat is geen probleem — het is beschikbaar in 12 locaties wereldwijd tegen een scherpe prijs.

En hiermee heb je uiteindelijk je eigen volwaardige MongoDB-service opgezet, volledig geconfigureerd voor productie-workloads en zakelijk gebruik.

Delen

Meer van de blog

Verder lezen.

Slim gegevensbeheer voor je bedrijf: "cloud-achtige" opslag- en back-upstrategieën met VPS
Databases & Analytics

Slim gegevensbeheer voor je bedrijf: "cloud-achtige" opslag- en back-upstrategieën met VPS

VPS voor veilig beheer van bedrijfsdata is de aanpak die ik aanbeveel zodra een bedrijf besluit te stoppen met het jongleren van bestanden tussen laptops, e-mailbijlagen en half-vergeten

Rexa CyrusRexa Cyrus 7 minuten lezen
Gerealiseerde weergave versus weergave
Databases & Analytics

Materialized View vs. View: hun rol in databases uitgelegd

In databasesystemen slaat een materialized view de vooraf berekende resultaten van een query op als fysieke tabel. Omdat de data daadwerkelijk op schijf wordt opgeslagen, kunnen complexe

Ivy JohnsonIvy Johnson 7 minuten lezen
SnowFlake tegen DataBricks
Databases & Analytics

Databricks vs Snowflake: een onbevooroordeelde vergelijking voor dataprofessionals 🧱❄️

Voor bedrijven die op data steunen om beslissingen te nemen - of het nu gaat om e-commerceplatforms die klantgedrag bijhouden, financiële instellingen die trends voorspellen of techbedrijven

Allan Van KirkAllan Van Kirk 13 minuten lezen

Klaar om in te zetten? Vanaf $2.48/mnd.

Onafhankelijke cloud, sinds 2008. AMD EPYC, NVMe, 40 Gbps. 14 dagen geld-terug-garantie.