MongoDB
 sql >> Database >  >> NoSQL >> MongoDB

Esecuzione di mongodb su Ubuntu 16.04 LTS

Chiunque abbia aggiornato o installato Ubuntu 16.04 (noto anche come Ubuntu Xenial xerus) ha notato che alcuni dei vecchi servizi hanno smesso di funzionare. Questo problema è noto dalla versione 15.04 ma mi concentrerò sulla versione precedente.

Questo è stato il mio caso con MongoDB. Per fare una lunga storia, in breve, Ubuntu è passato da upstart a systemd. Una soluzione comune, a questi problemi, è tornare a parvenu. Non considero questa opzione una vera soluzione, non certo a lungo termine.

Una vera soluzione ( IMHO ) al problema è scrivere uno script systemd che avvierà MongodDB. Sfortunatamente i ragazzi di MongoDB dovevano ancora fornirne uno.

Quindi ho dovuto scriverne uno da zero. Per crearne uno personalizzato, segui questi passaggi:

  1. passa a root usando
    sudo su
    

oppure usa sudo per tutti i seguenti passaggi.

  1. crea uno script di servizio (in questo esempio il nome del servizio è Mongodb)

    nano /lib/systemd/system/mongodb.service
    
  2. Il contenuto del file dovrebbe essere

    [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
    

Puoi anche scaricare il file da qui:mongodb.service
Ecco una breve descrizione dei campi importanti:
ExecStart - È il comando da eseguire. Mongo si installa in /usr/bin e il file di configurazione viene scritto in /etc
Utente - L'uid del processo mongod.
Gruppo - Il gid del processo mongod. Si noti che l'utente e il gruppo vengono creati dall'installazione.

Ora per iniziare mongodb:

sudo systemctl start mongodb

Per interrompere l'uso del servizio mongodb:

sudo systemctl stop mongodb

Per abilitare mongodb all'avvio

sudo systemctl enable mongodb.service

Se hai bisogno di aggiornare i servizi usa:

 sudo systemctl daemon-reload