50% korting alle plannen, beperkte tijd. Beginnend om $2.48/mo
Nog 12 minuten
Databases en analyses

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

Jim Schwarz By Jim Schwarz 12 minuten lezen
Origineel symbool van MongoDB gepresenteerd op een futuristische server om MongoDB op Ubuntu+ te installeren slogan over wat u kunt verwachten van het artikel + titel van het artikel + Cloudzy-merklogo

Dus je hebt besloten om MongoDB te gebruiken, een geweldig alternative to MariaDB voor het bouwen van een MERN-stack-app, een analyseplatform of een ander documentgebaseerd systeem, maar stuitten op een muur met goede oude Linux-opdrachtregels en talloze terminalfouten. 

Maar maak je geen zorgen, want deze handleiding biedt alles wat je moet weten van A tot Z om MongoDB op Ubuntu te installeren.

MongoDB gebruikt XYZ versiebeheer. 8.0 is een belangrijk release-serie, en 8.2 is een minderjarige release binnen die 8.0-cyclus. Kleine releases voegen functies toe binnen dezelfde hoofdcyclus en worden, te beginnen met 8.0, ook aangeboden voor installaties op locatie 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 geselecteerde platforms.

Vereisten voor GnuPG en Curl

Voordat u de ambtenaar installeert mongodb-org pakket vereist Ubuntu twee vereisten: GnuPG En Krul. Deze tools geven Ubuntu toestemming om MongoDB te downloaden, omdat Ubuntu eigen is Mongodb pakket wordt niet onderhouden door MongoDB Inc. en is in strijd met de ambtenaar mongodb-org pakket. Als u dit al hebt geïnstalleerd Mongodb zorg ervoor dat u het verwijdert.

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

Zorg ervoor dat uw terminal GnuPG en Curl met succes heeft geïnstalleerd. Als dit het geval is, zou het er als volgt uit moeten zien:Ubuntu-terminaluitvoer na het toevoegen van GnuPG en Curl

MongoDB GPG-sleutel importeren

De pakketbeheerder van Ubuntu, APT, gebruikt GPG-sleutels om pakketten te verifiëren vóór installatie. Zonder deze GPG-sleutel staat Ubuntu niet toe dat de repository's van MongoDB worden toegevoegd. Typ de volgende opdracht in uw terminal 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 werkt, zou uw terminaluitvoer er als volgt uit moeten zien:Ubuntu-terminal na het succesvol toevoegen van de GPG-sleutel van MongoDB.

Simpel gezegd: deze opdracht downloadt de beveiligingshandtekening van MongoDB, converteert deze naar een formaat dat Ubuntu kan lezen en slaat deze op in een beveiligde systeemmap. Hier is een overzicht van de opdrachtregel, sectie voor sectie:

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

Als je elke opdrachtregel perfect matcht, wordt de publieke GPG-sleutel zonder problemen toegevoegd. Sommige gebruikers ondervinden echter problemen bij het downloaden van MongoDB vanwege een niet-overeenkomende GPG-sleutel. Fouten zoals:

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

Gebeurt wanneer u de exacte GPG-toetsopdrachten niet eerder volgt en in plaats daarvan gebruikt sudo apt-sleutel omdat het moderne Ubuntu het niet aanbeveelt.

MongoDB-opslagplaats toevoegen

Door de repository van MongoDB toe te voegen, wordt een bestand gemaakt dat Ubuntu vertelt dat MongoDB-pakketten live zijn op een specifiek internetadres. Maak het lijstbestand op /etc/apt/sources.list.d/mongodb-org-8.0.list door de repositoryregel erin te schrijven met behulp van echo... | sudo t-shirt…

Dit is waar het lastig wordt, omdat verschillende versies van Ubuntu een andere variant van deze opdracht vereisen. We zullen nu onderzoeken hoe we het lijstbestand kunnen importeren in de drie eerder genoemde versies van Ubuntu.

Ubuntu 24.04 (Edel)

Om het lijstbestand op Ubuntu 24.04 te maken, simpel gezegd echo “deb [ arch=amd64,arm64 ondertekend door=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiversum” | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list op uw terminal.

Dit ziet er misschien verwarrend uit, maar maak je geen zorgen. Zodra we de opdracht in secties hebben opgesplitst, zal het glashelder zijn.

  1. echo drukt tekst af
  2. /etc/apt/sources.list.d is de map waarin Ubuntu softwarebrondefinities opslaat. Elk bestand met .lijst formaat in de map verwijst Ubuntu naar een specifieke locatie waar software van kan worden gedownload
  3. Als normale gebruiker kunt u standaard niets in systeemmappen schrijven. tee geeft de gebruiker speciale toestemming om tijdens het gebruik tekst in systeembestanden te schrijven sudo
  4. edele is de codenaam voor Ubuntu 24.04. Elke Ubuntu-versie heeft een codenaam zoals:
Versie Codenaam
20.04 Focaal
22.04 Jammie
24.04 Edele

Als uw versie van Ubuntu niet overeenkomt met de juiste opdrachtregel, herkent Ubuntu de repository van MongoDB niet.

Ubuntu 22.04 (Jammie)

Het toevoegen van het lijstbestand aan Ubuntu Jammy ziet er precies hetzelfde uit, maar u moet tijdens het vervangen de opdrachtregel invoeren edele met jammie, zoals dit:

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 ervoor dat dit degene is die overeenkomt met uw Ubuntu-versie, anders mislukt het opnieuw.

Ubuntu 20.04 (focaal)

Volg hier dezelfde stappen, maar in plaats van edele or jammie, erin zetten brandpunt:

echo “deb [ arch=amd64,arm64 ondertekend door=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiversum” | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

Nu de repository is ingesteld, kunt u doorgaan met installeren mongodb-org.

Vernieuw de pakketdatabase

Nu de repository door Ubuntu wordt herkend, moet u de pakketdatabase erin opnieuw laden, zodat deze vanaf nu ook MongoDB bevat. Voer de onderstaande opdracht uit:

sudo apt-get update

Deze opdracht blijft hetzelfde in elke Ubuntu-versie, en als deze wordt overgeslagen, zal Ubuntu geen MongoDB bevatten. Als de opdracht zijn werk doet, zou uw terminaluitvoer moeten zijn:Ubuntu-terminaluitvoer na het uitvoeren van sudo apt-get update

 Nu, na het opnieuw laden van uw pakketdatabase, is het tijd om MongoDB-pakketten te downloaden.

Installeer MongoDB Community Server

Er zijn verschillende MongoDB-releases om te installeren, maar gebruikers hebben de neiging om voor de nieuwste stabiele versie te kiezen, omdat dit de voorkeur heeft. Om de nieuwste stabiele versie te installeren, voert u uit sudo apt-get install -y mongodb-org

Ubuntu heeft nu de MongoDB-pakketten gedownload, geïnstalleerd, een MongoDB-gebruikersaccount en een gegevensmap aangemaakt en MongoDB geregistreerd als een systeemservice. Inmiddels hebben we besproken hoe je MongoDB op Ubuntu kunt downloaden. Laten we het nu opstarten.

Hoe MongoDB te starten

Om MongoDB te kunnen uitvoeren, moeten we Ubuntu's servicemanager, "systemd", vertellen dat hij MongoDB als een achtergrondservice moet herkennen, en om dat te doen, moet je de volgende opdracht in je terminal typen:

sudo systemctl start mongod

Als de opdracht zijn werk doet, opent Ubuntu MongoDB nu als achtergrondtoepassing. Als de opdracht zijn werk echter niet doet, ontvangt u mogelijk een foutmelding die lijkt op Kan mongod.service niet starten.

Dit kan gebeuren vanwege een aantal veelvoorkomende problemen:

  • Configuratiebestand fout in /etc/mongod.conf (YAML-inspringfouten komen vaak voor)
  • Havenconflict (poort 27017 is al bezet)
  • Toestemmingsprobleem op gegevens- of logmappen (var/lib/mongodb of var/log/mongodb)
  • Schijf vol or beschadigde bestandssysteemstatus

Drie opdrachten om het probleem te diagnosticerenFuturistische serverconfiguratie + drie ubuntu-terminalopdrachten + cloud met schrijven van upgradepaden.

Het is gemakkelijk om te zeggen wat er mis kan zijn met uw configuratie die MongoDB niet uitvoert, maar het is veel moeilijker om de exacte oorzaak te achterhalen. Er zijn drie eenvoudige manieren waarop u kunt vaststellen waar de fout vandaan kan komen:

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

Maar houd er rekening mee dat als uw schijf vol is of systeembestanden beschadigd zijn, de oplossing meer te maken heeft met uw hardware dan met software. Gebruikers moeten mogelijk betere apparatuur kopen voor hun serverconfiguratie om MongoDB efficiënt te kunnen uitvoeren als hun huidige configuratie verouderd is. 

Als het kopen van een volledige server niet binnen uw budget past, overweeg dan om Cloudzy's te bekijken Ubuntu-VPS voor een schone ervaring op uw eigen privéserver met een Ubuntu-distro naar wens. Het komt met 24/7 ondersteuning en tot 40Gbps netwerksnelheid, dankzij de NVMe SSD En DDR5-RAM opslag.

Bovendien heeft het een minimale latentie, 99.95% uptime, en een 14 dagen geld-terug-garantie. Niet alleen dat, maar het is ook verkrijgbaar in 12 locaties over de hele wereld tegen een betaalbare prijs.

Drie meest voorkomende oplossingen om MongoDB te laten werken

Er is geen absolute manier om zowel het exacte probleem van uw systeem met MongoDB te herkennen als om het in één eenvoudige stap op te lossen. Hier zijn dus enkele veelvoorkomende oplossingen die u kunt gebruiken om uw MongoDB hopelijk te laten werken.

  1. Inspringfout bij YAML-configuratie. Stel dat je hebt bewerkt /etc/mongod.conf Controleer de inspringing opnieuw door hierom te vragen sudo nano /etc/mongod.conf. Het YAML-bestand is behoorlijk gevoelig voor witruimte, dus zorg ervoor dat er slechts twee spaties per niveau aanwezig zijn /etc/mongod.conf.
  2. Bezette haven 27017. Als iets anders poort 27017 gebruikt, sluit het dan af of wijzig de poort van MongoDB mongod.conf. Als u niet zeker weet of er iets op poort 27017 draait, kunt u het gerust uitvoeren sudo ss -lntp | grep 27017 om het te bekijken
  3. Toestemmingsprobleem in de gegevensdirectory. Soms heeft MongoDB geen toestemming om op uw systeem te draaien en werkt het daarom helemaal niet. Eerste vlucht sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodben start MongoDB vervolgens opnieuw op met sudo systemctl herstart mongod

Volgens De officiële website van MongoDB, een andere manier om dit probleem te omzeilen is door de daemon opnieuw te laden met sudo systemctl daemon-herladenen voer het eerste commando uit, sudo systemctl start mongod, opnieuw.

Als er geen mongod.service, tijdens de installatie is de systemd-eenheid niet geplaatst, dus installeer de mongodb-org pakket ingesteld.

Dat gezegd hebbende, kunt u vervolgens verifiëren of MongoDB succesvol is gestart sudo systemctl status mongod. Als de terminal zegt actief (hardlopen), je bent klaar om te gaan. Maar er zijn nog enkele verdere configuraties die uw ervaring veel soepeler maken.

Maak MongoDB geautomatiseerdFuturistische serveropstelling met MongoDB-automatiseringssymbool + terminal met MongoDB-opdracht + logbestand

MongoDB wordt niet automatisch geopend telkens wanneer u uw server inschakelt; u zult elke keer een aantal van de genoemde stappen moeten herhalen. Optioneel kunt u Ubuntu vertellen om MongoDB te starten nadat u op uw bureaublad bent opgestart.

Gewoon rennen sudo systemctl schakel mongod in op uw terminal, die uw systeem vanaf nu zal vertellen om MongoDB uit te voeren na elke herstart. Bovendien kunt u de Mongod proces door het geven van de opdracht sudo systemctl herstart mongod. Bovendien moeten gebruikers mogelijk het proces volgen op eventuele fouten of belangrijke berichten door de uitvoer in het bestand te bekijken:

/var/log/mongodb/mongod.log

Nu dat allemaal is ingesteld, gaan we je mongod gaan gebruiken.

De MongoDB-shell openen

Om met hun database te kunnen communiceren, moeten gebruikers een MongoDB-shell openen door de opdracht te geven mangoest. Zie het als een speciale opdrachtpromptterminal voor MongoDB of een MySQL-console. Als alternatief kunt u communiceren met MongoDB met GUI-tools, zoals MongoDB-stuurprogramma's. Maar als je er vanaf de terminal mee wilt communiceren, mangoest is gemaakt om dat mogelijk te maken.

Uw MongoDB zal nu volledig functioneel zijn, maar er zijn enkele extra stappen die u moet overwegen om deze veilig te maken.

Maak MongoDB geverifieerdMongoDB-authenticatieproces + slotsymbool + bevestiging van authenticatie.

MongoDB heeft standaard geen wachtwoordbeveiliging omdat u al toegang moet hebben om een ​​gebruiker aan te maken. Hier is een eenvoudige manier om dat mogelijk te maken

Maak een beheerdergebruiker aan

Eerst moet u overschakelen naar de beheerdersdatabase met:

use admin

Maak vervolgens een gebruiker aan met db.createUser({…}). Vul het in met uw

  • Gebruikersnaam
  • Wachtwoord
  • Rol

Voor rol, bij voorkeur type wortel wat betekent volledige controle of beheerder.

Authenticatie inschakelen

Nu we onze eigen gebruiker hebben ingesteld, moeten we de /etc/mongod.conf bestand. Dat komt omdat dit bestand bepaalt hoe MongoDB zich gedraagt. Maar houd er rekening mee dat u bij het bewerken van het bestand altijd het Mongod dienst achteraf met sudo systemctl herstart mongod. Wat we hier moeten veranderen is een parameter genaamd autorisatie die er als volgt uitziet:

security:

  authorization:

Om het authenticatieproces te voltooien, wijzigt u eenvoudigweg de autorisatiewaarde als volgt:

security:

  authorization: enabled

Vanaf nu vereist MongoDB een login, zodat uw authenticatie is voltooid. Laten we nu doorgaan met een andere configuratie die volledig gebruik maakt van MongoDB.

Open uw firewall

Zoals eerder vermeld, draait MongoDB op poort 27017. Omdat firewalls standaard poorten blokkeren, moet u uw firewall laten weten dat applicaties op poort 27017 mogen worden uitgevoerd. Om dat mogelijk te maken, geeft u eenvoudigweg de opdracht:

ufw allow from YOUR_IP to any port 27017

Als alternatief kunt u ook het commando geven ufw staat 27017 toe, maar wees voorzichtig, want als u dit uitvoert, heeft het hele internet toegang tot die poort. Het is wellicht de veiligste keuze om gewoon voor de eerste optie te kiezen, omdat verkeer hierdoor alleen vanaf uw IP-adres toegang heeft tot de poort.

Gebruikers kunnen nog steeds met problemen worden geconfronteerd bij het uitvoeren van MongoDB, zoals het probleem met externe toegang. Blijf rondhangen om erachter te komen hoe u dit kunt oplossen.

Probleem met externe toegangServerconfiguratie met 3 monitoren die de instellingen voor externe toegang van MongoDB + terminalopdrachten configureren.

MongoDB wordt gelanceerd met bindenIp. bindenIp beperkt MongoDB tot 127.0.0.1, waardoor alleen lokale verbindingen mogelijk zijn. Als u dus ergens anders verbinding zou maken met uw MongoDB-server, krijgt u geen toegang, omdat MongoDB standaard is geconfigureerd om alleen verbindingen op locatie toe te staan, tenzij anders geconfigureerd.

Nogmaals, ga naar /etc/mongod.conf, en je ziet drie regels zoals deze:

net:

  port: 27017

  bindIp: 127.0.0.1

Als u externe verbindingen met uw Mongod gebruiker, wijzig de hierboven weergegeven waarden als volgt:

net:

  port: 27017

  bindIp: 0.0.0.0

Start daarna uw Mongod dienst mee sudo systemctl herstart mongod zoals bij elke andere bewerking die u in het bestand aanbrengt.

U heeft nu uw toestemming verleend Mongod servicetoestemming om externe verbindingen te accepteren. Maar wees voorzichtig, want door dit te doen, stelt u uw database bloot aan het hele internet als u uw database nog niet heeft geverifieerd Mongod gebruiker. Er zijn veel bots die voortdurend zoeken naar open MongoDB-poorten, dus zorg er altijd voor dat uw mongod-gebruiker een wachtwoord heeft.

Samenvatting van het grote beeld

Gefeliciteerd, je hebt nu alles gedaan om een ​​geoptimaliseerde MongoDB-service voor je Ubuntu-systeem te creëren. Hier is ook een mentale kaart om elke stap in dit artikel bij te houden.

Commando Wat het doet
passende update Softwarelijst vernieuwen
apt installeren Software installeren
krul Bestand downloaden
gpg Beheer encryptiesleutels
echo Tekst afdrukken
tee Schrijf naar beveiligd bestand
systemctl starten Dienst starten
systemctl inschakelen Begin bij het opstarten
systemctl-status Dienst controleren
mangoest Voer de MongoDB-shell in
Bewerking /etc/mongod.conf Authenticatie inschakelen
ufw Beheer firewall
bindenIp Sta externe toegang toe

Dat zou u moeten helpen het hele proces beter te begrijpen. Maar als het zelf opzetten van MongoDB te veel voor je is, zorg er dan voor dat je Cloudzy's opstart MongoDB-VPS voor uw eigen privé Ubuntu 24.04 LTS-server waarop MongoDB vooraf is geïnstalleerd.

Het komt met 99.95% uptime, 24/7 ondersteuning, en een 14 dagen geld-terug-garantie. Daarnaast ondersteunt het tot 40 Gbps van bandbreedte dankzij zijn DDR5-RAM En NVMe SSD opslag. Maak je geen zorgen over waar je woont, want het is ook beschikbaar in 12 locaties over de hele wereld tegen een betaalbare prijs.

Maar met dat alles gezegd, bent u er eindelijk in geslaagd om uw eigen capabele MongoDB-service op te zetten, uitgerust met elke configuratie om werklasten en bedrijven op productieniveau te ondersteunen.

Deel

Meer van de blog

Blijf lezen.

Slim gegevensbeheer voor uw bedrijf: ‘cloudachtige’ opslag- en back-upstrategieën met VPS
Databases en analyses

Slim gegevensbeheer voor uw bedrijf: ‘cloudachtige’ opslag- en back-upstrategieën met VPS

VPS voor veilig bedrijfsgegevensbeheer is de strategie die ik aanbeveel wanneer een bedrijf besluit dat het tijd is om te stoppen met het jongleren met bestanden op laptops, e-mailbijlagen en half vergeten bestanden.

Rex CyrusRex Cyrus 7 minuten lezen
Gematerialiseerde weergave versus weergave
Databases en analyses

Gematerialiseerde weergave versus weergave: inzicht in hun rol in databases

In databasesystemen slaat een gematerialiseerde weergave als een databaseobject de vooraf berekende resultaten van een zoekopdracht op als een fysieke tabel. Omdat de gegevens feitelijk op schijf worden opgeslagen, wordt dit ingewikkeld

Ivy JohnsonIvy Johnson 7 minuten lezen
Sneeuwvlok versus DataBricks
Databases en analyses

Databricks versus Snowflake: onbevooroordeelde vergelijking van dataprofessionals 🧱❄️

Voor bedrijven die afhankelijk zijn van data om beslissingen te nemen, of het nu gaat om e-commerceplatforms die het gedrag van klanten volgen, financiële instellingen die trends voorspellen of technologiebedrijven

Allan Van KirkAllan Van Kirk 13 minuten lezen

Klaar om te implementeren? Vanaf $ 2,48/maand.

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