Apakah Anda menjalankan dari repositori 10gen atau dari repo Debian / Ubuntu default? Saya sarankan menggunakan repositori 10gen resmi.
Lihat tautan ini - [Cara Instalasi MongoDB 10gen di Ubuntu:] http://docs.mongodb.org/manual/tutorial/install-mongodb-on-ubuntu/ . Yang terbaik adalah menghapus instalasi instalasi mongodb sebelumnya sebelum perubahan ini, yang juga mengharuskan Anda untuk memodifikasi sumber repositori Anda (di /etc/apt/source.list) tetapi ini juga dirinci dalam tautan di atas. Saya merekomendasikan menggunakan pemula sebagai pengganti sysvinit dan diproses diuraikan dalam How-To.
Dengan pengaturan Ubuntu 10gen, file konfigurasi ada di /etc/mongodb.conf.
Ada beberapa cara yang dapat Anda lakukan untuk menjalankan proses mongod terpisah, satu hanya akan menjalankannya dari cli -
sudo -u mongodb mongod --dbpath /var/tmp/mongotest --logpath /var/tmp/mongotest_log --port 3001 &
yang akan menghasilkan (menggunakan '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
dan Anda dapat terhubung melalui cli -> mongod --port 3001
Cara lain adalah membuat salinan /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
Saya telah mengubah dbpath (tempat file mongodb disimpan) dari / var / lib / mongodb ke / var / lib / mongodbnew; path log telah berubah dari mongodb.log ke mongodbnew.log dan port telah berubah dari default 27017 ke 27018 (Anda juga harus menghapus # untuk menghapus tanda komentar pada baris).
Saya juga mengubah baris teratas untuk mencerminkan nama baru file konfigurasi ini.
Anda juga harus membuat direktori data karena itu tidak akan ada dan tanpanya, proses mongod tidak akan memulai dan memastikan bahwa pemilik dan grup adalah mongodb -
sudo mkdir /var/lib/mongodbnew
sudo chown -R mongodb:mongodb mongodbnew/
Selain itu, buat dan ubah pengajuan file log Anda -
sudo touch /var/log/mongodb/mongodbnew.log && sudo chown mongodb:mongodb /var/log/mongodb/mongodbnew.log
Untuk memulai proses mongod baru Anda (di latar belakang) dari cli, ketik
sudo -u mongodb /usr/bin/mongod --config /etc/mongodbnew.conf &
yang mengirim berikut ke layar -
"semua output menuju: /var/log/mongodb/mongodbnew.log"
Periksa apakah proses mongod berjalan dengan "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
Untuk memverifikasi bahwa Anda dapat terhubung, jalankan shell Mongo -
$ mongo --port 27018
MongoDB shell version: 2.0.5
connecting to: 127.0.0.1:27018/test
>
Dengan lsof, sekarang Anda akan melihat dua proses mongod Anda, yang asli terikat ke 27017 dan yang baru terikat ke 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)
Untuk memastikan bahwa kedua proses berjalan saat start-up, salin file konfigurasi init asli -
sudo cp /etc/init/mongodb.conf /etc/init/mongodbnew.conf
yang seharusnya menghasilkan dua file seperti -
$ 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
Edit file mongodbnew.conf baru menggunakan vi atau apa pun yang Anda suka terlihat seperti ini -
## 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]
berhenti di 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
akhiri skrip
Saya telah menguji ini di Ubuntu 12.04 dan tampaknya berfungsi dengan baik, termasuk setelah reboot. Saya belum menjalankannya dalam produksi jelas. Permintaan maaf, jika ada kesalahan ketik di atas tetapi ada banyak informasi dan saya mungkin melewatkan sesuatu.
Akhirnya, inilah tautan pada Replica Sets yang mungkin membantu Anda karena telah muncul contoh untuk memulai beberapa instance mongod dari cli - http://www.mongodb.org/display/DOCS/Replica+Set+Tutorial .
Saya mengalami masalah dengan jawaban di atas di mana stop-start-daemon tidak memulai proses baru dengan nama yang sama lebih dari sekali. Namun, ada
--name
argumen yang memungkinkan Anda untuk mengubah baris di skrip pemula Anda/etc/init/
untuk memasukkan nama baru sehingga akan mulai. Sesuatu seperti ini:if [ "x$ENABLE_MONGODB" = "xyes" ]; then exec start-stop-daemon --start --quiet --chuid mongodb --name mongodb-shard2 --exec /usr/bin/mongod -- --config /etc/mongodb-shard2.conf; fi
Dalam hal ini
--name
argumen membuat instance ini unik dan memungkinkannya untuk memulai secara terpisah dari instance mongod lainnya.sumber
upstart
skrip ditemukan di/etc/init/
sumber