sql >> Database >  >> NoSQL >> MongoDB

Mongodb uitvoeren op ubuntu 16.04 LTS

Iedereen die Ubuntu 16.04 (ook bekend als Ubuntu Xenial xerus) heeft geüpgraded of geïnstalleerd, merkte op dat sommige van de oude services niet meer werkten. Dit probleem is bekend vanaf versie 15.04, maar ik zal me concentreren op de bovenstaande versie.

Dat was mijn geval met MongoDB. Om een ​​lang verhaal kort te maken, Ubuntu verschoof van parvenu naar systemd. Een veelvoorkomende oplossing voor deze problemen is om terug te gaan naar parvenu. Ik beschouw die optie niet als een echte oplossing, zeker niet voor de lange termijn.

Een echte oplossing ( IMHO ) voor het probleem is het schrijven van een systemd-script dat MongodDB zal starten. Helaas moesten de jongens van MongoDB er nog een leveren.

Dus ik moest er een helemaal opnieuw schrijven. Volg deze stappen om er zelf een te maken:

  1. schakel over naar root met
    sudo su
    

of gebruik sudo voor alle volgende stappen.

  1. maak een servicescript (in dit voorbeeld is de naam van de service Mongodb)

    nano /lib/systemd/system/mongodb.service
    
  2. Bestandsinhoud moet

    . zijn
    [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
    

U kunt het bestand ook hier downloaden:mongodb.service
Hier is een korte beschrijving van de belangrijke velden:
ExecStart - Is het commando om uit te voeren. Mongo installeert zichzelf onder /usr/bin en het configuratiebestand wordt geschreven in /etc
Gebruiker - De uid van het mongod-proces.
Groep - De gid van het mongod-proces. Merk op dat de gebruiker en groep door de installatie worden aangemaakt.

Om nu mongodb te starten:

sudo systemctl start mongodb

Om het gebruik van de mongodb-service te stoppen:

sudo systemctl stop mongodb

Mongodb inschakelen bij opstarten

sudo systemctl enable mongodb.service

Als u de services moet vernieuwen, gebruikt u:

 sudo systemctl daemon-reload


  1. Een Mongo-databaseverzameling in Meteor laten vallen

  2. Hoe kan ik een veld uit aggregatie gebruiken in een regex $match in mongodb?

  3. Afzonderlijke rijen in reikwijdte vinden met mongoïde

  4. Object in een array vullen