web-dev-qa-db-fra.com

Quelle est la bonne façon de démarrer un service Mongod sur linux/OS X?

J'ai installé mongodb et je suis capable de l'exécuter, de l'utiliser, de faire des choses simples en lecture/écriture dans la base de données. Maintenant, j'essaie de configurer mon Mac pour exécuter Mongod en tant que service.

Je reçois "Commande introuvable" en réponse à: 

 init mongod start

En réponse à: 

~: service mongod start
service: This command still works, but it is deprecated. Please use launchctl(8) instead.
service: failed to start the 'mongod' service

Et si j'essaye:

~: launchctl start mongod
launchctl start error: No such process

Alors évidemment, je gaffe un peu. La prochaine étape semble être de taper des caractères aléatoires jusqu'à ce que quelque chose fonctionne. La commande qui fonctionne est la suivante: mongod --quiet & Je ne suis pas sûr, c'est peut-être ainsi que vous êtes censé le faire? Peut-être que je devrais juste enlever le 'mode silencieux' et ajouter > /logs/mongo.log à la fin de la ligne de commande?

Je construis un environnement de développement sur un Mac avec l'intention de faire la même chose sur un serveur Linux. Je ne suis tout simplement pas sûr des commandes Bash. Toutes les autres recherches que je fais pour essayer de trouver la réponse me donnent des conseils pour les machines Windows. 

Peut-être que quelqu'un connaît la version linux des commandes?

Merci beaucoup

127
Alex C

Avec les versions récentes de mongodb community edition, ceci est simple.

Lorsque vous installez via brew, il vous dit quoi faire exactement. Il n'est pas nécessaire de créer un nouveau fichier de contrôle de lancement.

$ brew install mongodb
==> Downloading https://homebrew.bintray.com/bottles/mongodb-3.0.6.yosemite.bottle.tar.gz ### 100.0%
==> Pouring mongodb-3.0.6.yosemite.bottle.tar.gz
==> Caveats
To have launchd start mongodb at login:
  ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents
Then to load mongodb now:
  launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist
Or, if you don't want/need launchctl, you can just run:
  mongod --config /usr/local/etc/mongod.conf
==> Summary
????  /usr/local/Cellar/mongodb/3.0.6: 17 files, 159M
126

Edit: vous devriez maintenant utiliser brew services start mongodb, comme dans la réponse de Gergo ...

Lorsque vous installez/mettez à niveau mongodb, brasser vous dira quoi faire:

Pour que launchd démarre mongodb à la connexion:

    ln -sfv /usr/local/opt/mongodb/*.plist ~/Library/LaunchAgents

Ensuite, pour charger mongodb maintenant:

    launchctl load ~/Library/LaunchAgents/homebrew.mxcl.mongodb.plist

Ou, si vous ne voulez pas/n'avez pas besoin de launchctl, vous pouvez simplement exécuter:

    mongod

Ça fonctionne parfaitement.

150
Mario Alemi

Homebrew's services tap intègre des formules avec le gestionnaire launchctl. L'ajouter est facile:

brew tap homebrew/services

Vous pouvez ensuite lancer MongoDB avec cette commande (cela démarrera également mongodb au démarrage):

brew services start mongodb

Vous pouvez également utiliser stop ou restart:

brew services stop mongodb
brew services restart mongodb
69
Gergo Erdosi

Si vous avez envie d'avoir un simple interface graphique pour résoudre ce problème (comme je le fais), je peux alors vous recommander le panneau de préfixe mongodb. Description: http://blog.mongodb.org/post/28925264384/macosx-preferences-pane-for-mongodb

Sur github: https://github.com/remysaissy/mongodb-macosx-prefspane

14
koffster

Je viens d'installer MongoDB via Homebrew. À la fin de la console d'installation, vous pouvez voir une sortie comme suit:

Pour démarrer mongodb:

brew services start mongodb

Ou, si vous ne voulez pas/n'avez pas besoin d'un service en arrière-plan, vous pouvez simplement exécuter:

mongod --config /usr/local/etc/mongod.conf

Ainsi, les services de brassage commencent mongodb , ont réussi à exécuter MongoDB en tant que service pour moi.

3
Ardi Bello

J'ai un peu cherché du côté Mac. Vous voudrez peut-être utiliser le programme d’installation ici car il semble que toute la configuration soit automatiquement lancée sous Mac OS. Le seul inconvénient est qu'il semble utiliser une version assez ancienne de Mongo. 

Ce lien ici explique également la configuration permettant à mongo de se lancer automatiquement en tant que service en arrière-plan sur le Mac.

2
Scott

mongod ne fonctionnait pas pour démarrer le démon pour moi, mais après avoir exécuté ce qui suit, cela a commencé à fonctionner:

'mongod --fork --logpath /var/log/mongodb.log'

(à partir d'ici: https://docs.mongodb.com/manual/tutorial/manage-mongodb-processes/ )

0
briami

mongod --dbpath [path_to_data_directory]

0
Rejeev Divakaran

Sur macOS 10.13.6 avec MongoDB 4.0

Je n'ai pas pu me connecter à localhost depuis le shell mongo

J'ai commencé MongoDB avec:

mongod --config /usr/local/etc/mongod.conf

J'ai trouvé que le 'mongod.conf' avait:

bindIp: 127.0.0.1

Changer ma connexion JavaScript de localhost à 127.0.0.1 et cela a bien fonctionné. 

La même chose se produisait avec MongoDB Compass aussi. 

0
NOTiFY

Premier pas

installez mongodb sur votre machine linux avec 

apt install mongodb-client && apt install mongodb-server

la deuxième étape est

changez le chemin de la base de données au lieu du chemin par défaut de votre système si vous voulez .
faites donc les étapes suivantes et changez-les vous-même.

mongod --directoryperdb --dbpath /var/lib/mongodb/data/db --logpath /var/lib/mongodb/log/mongodb.log --logappend --rest

et dans votre machine Windows faites-le comme cela, mettez juste un drapeau --install ..__ vous devez obtenir un message réussi.

Meilleures salutations...

0
MehdiPRG