J'ai installé MongoDB via le centre logiciel Ubuntu 16.04:
mongodb 1:2.6.10-0ubuntu1
Je crois que this contient actuellement MongoDB 2.6.10.
J'exécute une application sur la configuration d'Apache2 localhost et dois démarrer mongod
chaque fois que le système démarre avec:
mongod
Je veux que ça démarre automatiquement.
J'ai rencontré deux méthodes principales pour le faire:
update-rc.d mongodb defaults
à partir de: https://askubuntu.com/a/89914/367134
qui se traduit par:
update-rc.d mongodb defaults
insserv: fopen(.depend.stop): Permission denied
Mais cela n'a pas produit d'erreur:
Sudo update-rc.d mongodb defaults
J'ai également vu quelques références pour éditer le "fichier de configuration MongoDB", mais je ne suis pas sûr de savoir à quoi cela correspond, car je peux voir les fichiers de configuration à plusieurs endroits:
/etc/mongodb.conf
/etc/init/mongodb.conf
/etc/init.d/mongodb
Et, une fois dans le bon fichier, je ne sais pas quoi changer.
Dans /etc/init/mongodb.conf
je peux voir:
start on runlevel [2345]
stop on runlevel [!2345]
Quelle est la bonne façon d’assurer que mongod
démarre au démarrage du système en 16.04?
J'ai lu this et j'ai regardé dans /etc/rc2.d
et je peux voir:
S01mongodb@ --> /etc/init.d/mongodb
Mise à jour:
Après avoir lancé la suggestion:
Sudo systemctl enable mongodb
puis en redémarrant, exécuter systemctl status mongodb
renvoie:
* mongodb.service - An object/document-oriented database
Loaded: loaded (/lib/systemd/system/mongodb.service; enabled; vendor preset: enabled)
Active: failed (Result: exit-code) since Mon 2016-04-18 23:42:28 AEST; 7min ago
Docs: man:mongod(1)
Process: 655 ExecStart=/usr/bin/mongod --config /etc/mongodb.conf (code=exited, status=100)
Main PID: 655 (code=exited, status=100)
Apr 18 23:42:27 me-comp systemd[1]: Started An object/document-oriented database
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Main process exited, code=exited, status=100/n/a
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Unit entered failed state.
Apr 18 23:42:28 me-comp systemd[1]: mongodb.service: Failed with result 'exit-code'.
Dépannage des autorisations
/var/lib/mongodb
= drwxr-xr-x mongodb mongodb
./var/log/mongodb
= drwxr-xr-x mongodb mongodb
./var/log/mongodb/mongodb.log
= -rw-r--r-- mongodb nogroup
./var/log/mongodb/mongod.log
= -rw-r--r-- mongodb mongodb
./data/db/mongod.lock
= -rwxrwxr-x me me
et 0 octet./data
= drwxr-xr-x root root
./data/db
= drwxr-xr-x me root
.
Contenu du fichier de configuration
/etc/mongodb.conf
:
# Where to store the data.
dbpath=/var/lib/mongodb
#where to log
logpath=/var/log/mongodb/mongodb.log
logappend=true
bind_ip = 127.0.0.1
#port = 27017 ...
Installation
C'est la méthode que j'ai finalement utilisée (d'après le commentaire de l'utilisateur Adam C: utiliser une version plus récente de mongodb). Cela a fonctionné pour moi mais je ne suis pas une autorité en la matière.
https://askubuntu.com/a/757385/367134
Ensuite, je devais créer un fichier de service, voir:
https://askubuntu.com/a/694226/367134
Et éditez le chemin dans ce fichier de service à partir de:
/etc/mongodb.conf
à:
/etc/mongod.conf
Et faites ensuite mongodb démarrer au démarrage du système avec:
Sudo systemctl enable mongodb
voir:
Maintenant, mongodb démarre au démarrage du système 16.04.
Désinstallation de l'ancienne MongoDB
Avant toutefois, je devais supprimer les installations et les répertoires existants, ce que j’ai fait comme ceci (étapes principalement à partir de https://askubuntu.com/a/497144/367134 ):
# go to /etc/apt/sources.list.d and remove any mongodb lists, then:
# sanity check - see what is installed
Sudo dpkg -l | grep mongo
# remove all packages
Sudo apt-get remove mongodb* --purge
Sudo apt-get autoremove
# remove old directories
Sudo rm -r -f /var/lib/mongodb/
Sudo rm -r -f /var/log/mongodb/
Pour moi, c'est à cause de la mauvaise permission de db path. juste
chown mongodb:mongodb /var/lib/mongodb
Pendant que vous développez, vous voudrez peut-être aussi parfois l’inverse: avoir plusieurs instances séparables locales que vous démarrez individuellement, plutôt qu’une installation globale ...
mongod --dbpath ./mongo_db_data/ --logpath ./mongo_logs/mongodb.log --port 12345
Pour moi, je ne fais que Sudo systemctl enable mongod