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:
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:
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:
- curl -fsSL-URL downloadt de officiële sleutel van MongoDB
- –geachte converteert de sleutel van tekstformaat naar binair zodat Ubuntu deze kan begrijpen
- -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.
- echo drukt tekst af
- /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
- 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
- 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:
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 diagnosticeren
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:
- Servicestatus controleren: sudo systemctl status mongod –no-pager
- Controleer gedetailleerde logs (belangrijkste): sudo journalctl -u mongod –no-pager -n 100
- 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.
- 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.
- 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
- 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 geautomatiseerd
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 geverifieerd
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 toegang
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.