sql >> Databasteknik >  >> NoSQL >> MongoDB

Kör mongodb på ubuntu 16.04 LTS

Alla som uppgraderar eller installerade Ubuntu 16.04 (även känd som Ubuntu Xenial xerus) märkte att några av de gamla tjänsterna slutade fungera. Det här problemet är känt från version 15.04 men jag kommer att fokusera på ovanstående version.

Så var mitt fall med MongoDB. För att göra en lång historia, kort, bytte Ubuntu från uppkomling till systemd. En vanlig lösning på dessa problem är att byta tillbaka till uppkomling. Jag ser inte det alternativet som en verklig lösning, absolut inte på lång sikt.

En verklig lösning ( IMHO ) på problemet är att skriva systemd-skript som startar MongodDB. Tyvärr hade MongoDB killar ännu inte levererat en.

Så jag var tvungen att skriva en från början. Följ dessa steg för att skapa en av dina egna:

  1. växla till root med
    sudo su
    

eller använd sudo för alla följande steg.

  1. skapa ett tjänsteskript (i det här exemplet är namnet på tjänsten Mongodb)

    nano /lib/systemd/system/mongodb.service
    
  2. Filinnehållet ska vara

    [Unit]
    Description=MongoDB Database Service
    Wants=network.target
    After=network.target
    
    [Service]
    ExecStart=/usr/bin/mongod --config /etc/mongod.conf
    ExecReload=/bin/kill -HUP $MAINPID
    Restart=always
    User=mongodb
    Group=mongodb
    StandardOutput=syslog
    StandardError=syslog
    
    [Install]
    WantedBy=multi-user.target
    

Du kan också ladda ner filen härifrån:mongodb.service
Här är en snabb beskrivning av de viktiga fälten:
ExecStart - Är kommandot att köra. Mongo installerar sig själv under /usr/bin och konfigurationsfilen skrivs på /etc
Användare - Uid för mongod-processen.
Grupp - Den mongod processens gid. Observera att användaren och gruppen skapas av installationen.

Nu för att starta mongodb:

sudo systemctl start mongodb

För att stoppa mongodb-tjänsten använd:

sudo systemctl stop mongodb

För att aktivera mongodb vid start

sudo systemctl enable mongodb.service

Om du behöver uppdatera tjänsterna använd:

 sudo systemctl daemon-reload


  1. tidsserier och aggregeringsramverk (mongo)

  2. Node.js och MongoDB tidszonsproblem UTC konverteras inte korrekt av drivrutinen?

  3. Redis Support på sekundärt index

  4. Varför tar MongoDB så mycket plats?