Stai eseguendo dal repository 10gen o dal repository Debian / Ubuntu predefinito? Consiglio di utilizzare il repository 10gen ufficiale.
Dai un'occhiata a questo link - [10gen MongoDB How-To Install su Ubuntu:] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ . È meglio disinstallare la precedente installazione di mongodb prima di questa modifica, che richiederà anche di modificare la fonte del repository (in /etc/apt/source.list) ma questo è anche dettagliato nel link sopra. Consiglio di utilizzare upstart su sysvinit e l'elaborazione è descritta nel How-To.
Con il set-up Ubuntu 10gen, il file di configurazione è in /etc/mongodb.conf.
Esistono diversi modi in cui è possibile eseguire un processo mongod separato, si potrebbe semplicemente eseguirlo dal cli -
sudo -u mongodb mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001 &
che produrrà (usando '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
e puoi connetterti tramite cli -> mongod --port 3001
Un altro modo è creare una copia di /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
Ho modificato il dbpath (dove sono memorizzati i file mongodb) da / var / lib / mongodb a / var / lib / mongodbnew; il percorso del registro è stato modificato da mongodb.log a mongodbnew.log e la porta è stata modificata dal valore predefinito da 27017 a 27018 (sarà inoltre necessario rimuovere # per rimuovere il commento dalla riga).
Ho anche cambiato la riga superiore per riflettere il nuovo nome di questo file di configurazione.
Dovrai anche creare la directory dei dati perché non esisterà e senza di essa, il processo mongod non si avvierà e assicurerà che il proprietario e il gruppo siano mongodb -
sudo mkdir /var/lib/mongodbnew
sudo chown -R mongodb:mongodb mongodbnew/
Inoltre, crea e modifica le convinzioni del tuo file di registro -
sudo touch /var/log/mongodb/mongodbnew.log && sudo chown mongodb:mongodb /var/log/mongodb/mongodbnew.log
Per iniziare il nuovo processo di mongod (in background) dal cli, digitare
sudo -u mongodb /usr/bin/mongod --config /etc/mongodbnew.conf &
che invia quanto segue allo schermo -
"tutto l'output va a: /var/log/mongodb/mongodbnew.log"
Verifica che i processi mongod siano in esecuzione con "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
Per verificare che sia possibile connettersi, eseguire la shell Mongo -
$ mongo --port 27018
MongoDB shell version: 2.0.5
connecting to: 127.0.0.1:27018/test
>
Con lsof, ora dovresti vedere i tuoi due processi mongod, l'originale associato a 27017 e il nuovo associato a 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)
Per assicurarsi che i due processi vengano eseguiti all'avvio, copiare il file di configurazione iniziale init -
sudo cp /etc/init/mongodb.conf /etc/init/mongodbnew.conf
che dovrebbe tradursi in due file come -
$ 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
Modifica il nuovo file mongodbnew.conf usando vi o qualunque cosa tu preferisca assomigliare a questo -
## 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]
stop on runlevel [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
fine script
Ho provato questo su Ubuntu 12.04 e sembra funzionare bene, anche dopo un riavvio. Non l'ho eseguito in produzione ovviamente. Mi scuso, se c'è qualche errore di battitura sopra, ma ci sono molte informazioni e potrei aver perso qualcosa.
Infine, ecco un link sui set di repliche che potrebbe esserti di aiuto in quanto sono venuti degli esempi sull'avvio di più istanze di mongod dal cli - http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial .