Exécutez-vous à partir du référentiel 10gen ou du référentiel Debian / Ubuntu par défaut? Je recommande d'utiliser le référentiel 10gen officiel.
Consultez ce lien - [10gen MongoDB How-To Install on Ubuntu:] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ . Il est préférable de désinstaller l'installation précédente de mongodb avant cette modification, ce qui vous obligera également à modifier la source de votre référentiel (dans /etc/apt/source.list) mais cela est également détaillé dans le lien ci-dessus. Je recommande d'utiliser upstart sur sysvinit et le traitement est décrit dans le How-To.
Avec la configuration Ubuntu 10gen, le fichier de configuration se trouve dans /etc/mongodb.conf.
Il existe plusieurs façons de lancer un processus mongod distinct, on pourrait simplement l'exécuter à partir du cli -
sudo -u mongodb mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001 &
qui produira (en utilisant 'ps')
mongodb 2210 3.3 1.5 259012 15300 pts/0 Dl 11:48 0:00 mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001
et vous pouvez vous connecter via le cli -> mongod --port 3001
Une autre façon consiste à créer une copie de /etc/mongodb.conf -
sudo cp /etc/mongodb.conf /etc/mongodbnew.conf and editing the following lines in the new file -
# mongodbnew.conf
dbpath=/var/lib/mongodbnew
#where to log
logpath=/var/log/mongodb/mongodbnew.log
port = 27018
J'ai changé le dbpath (où les fichiers mongodb sont stockés) de / var / lib / mongodb à / var / lib / mongodbnew; le chemin du journal est passé de mongodb.log à mongodbnew.log et le port est passé de la valeur par défaut de 27017 à 27018 (vous devrez également supprimer le # pour décommenter la ligne).
J'ai également changé la ligne supérieure pour refléter le nouveau nom de ce fichier de configuration.
Vous devrez également créer le répertoire de données car il n'existera pas et sans lui, le processus mongod ne démarrera pas et vous assurera que le propriétaire et le groupe sont mongodb -
sudo mkdir /var/lib/mongodbnew
sudo chown -R mongodb:mongodb mongodbnew/
De plus, créez et modifiez les persmissions de votre fichier journal -
sudo touch /var/log/mongodb/mongodbnew.log && sudo chown mongodb:mongodb /var/log/mongodb/mongodbnew.log
Pour démarrer votre nouveau processus mongod (en arrière-plan) à partir du cli, tapez
sudo -u mongodb /usr/bin/mongod --config /etc/mongodbnew.conf &
qui envoient ce qui suit à l'écran -
"toutes les sorties vont à: /var/log/mongodb/mongodbnew.log"
Vérifiez que les processus mongod fonctionnent avec "ps" -
sysadmin@ubuntu:/var/lib$ ps auwx | grep mongo | egrep -v 'grep|sudo'
mongodb 921 11.3 1.5 627672 15608 ? Ssl 10:56 4:30 /usr/bin/mongod --config /etc/mongodb.conf
mongodb 2137 7.8 1.5 627672 15880 pts/0 Sl 11:36 0:00 /usr/bin/mongod --config /etc/mongodbnew.conf
Pour vérifier que vous pouvez vous connecter, exécutez le shell Mongo -
$ mongo --port 27018
MongoDB shell version: 2.0.5
connecting to: 127.0.0.1:27018/test
>
Avec lsof, vous devriez maintenant voir vos deux processus mongod, l'original lié à 27017 et le nouveau lié à 27018.
$ sudo lsof -i :27017
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 921 mongodb 6u IPv4 9066 0t0 TCP *:27017 (LISTEN)
sysadmin@ubuntu:/var/lib$ sudo lsof -i :27018
COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME
mongod 2137 mongodb 6r IPv4 11923 0t0 TCP *:27018 (LISTEN)
Pour vous assurer que les deux processus s'exécutent au démarrage, copiez le fichier de configuration init d'origine -
sudo cp /etc/init/mongodb.conf /etc/init/mongodbnew.conf
ce qui devrait se traduire par deux fichiers tels que -
$ ls -lart /etc/init/mongo*
-rw-r--r-- 1 root root 536 May 8 15:51 /etc/init/mongodb.conf
-rw-r--r-- 1 root root 554 Jun 11 11:43 /etc/init/mongodbnew.conf
Modifiez le nouveau fichier mongodbnew.conf en utilisant vi ou ce que vous préférez ressembler à ceci -
## Ubuntu upstart file at /etc/init/mongodbnew.conf
limit nofile 20000 20000
kill timeout 300 # wait 300s between SIGTERM and SIGKILL.
pre-start script
mkdir -p /var/lib/mongodbnew/
mkdir -p /var/log/mongodbnew/
end script
start on runlevel [2345]
arrêt au niveau d'exécution [06]
script
ENABLE_MONGODB="yes"
if [ -f /etc/default/mongodbnew ]; then . /etc/default/mongodbnew; fi
if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --exec /usr/bin/mongod -- --config /etc/mongodbnew.conf; fi
script de fin
J'ai testé cela sur Ubuntu 12.04 et cela semble bien fonctionner, y compris après un redémarrage. Je ne l'ai évidemment pas exécuté en production. Toutes mes excuses, s'il y a une faute de frappe ci-dessus mais il y a beaucoup d'informations et j'ai peut-être raté quelque chose.
Enfin, voici un lien sur les jeux de répliques qui pourrait vous aider car il contient des exemples de démarrage de plusieurs instances de mongod à partir du cli - http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial .