Calm Hill My Random Thoughts

Installing MongoDB 3.2 on Ubuntu 15.10

ရန်ကုန်ရုံးမှာ Internal Server တခု Setup လုပ်ပေးရင်းနဲ့ MongoDB ကို Ubuntu 15.10 ပေါ်မှာ Install လုပ်ဖို့ဖြစ်လာတယ်။ MongoDB ရဲ့ Official Repo က Ubuntu တွေမှာ LTS Version တွေကိုပဲ Support လုပ်ပါတယ် အဲဒါကြောင့် သုံးနေတာက 15.10 ဖြစ်ပေမယ့် 14.04 အတွက်ပေးထားတဲ့ Package တွေပဲသုံးလို့ရပါတယ်။

sudo apt-key adv --keyserver hkp://keyserver.ubuntu.com:80 --recv EA312927
echo "deb http://repo.mongodb.org/apt/ubuntu trusty/mongodb-org/3.2 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-3.2.list
sudo apt-get update
sudo apt-get install mongodb-org

Install လုပ်ပြီးတဲ့နောက်မှာ ပြဿနာက MongoDB Service ဟာ Start လုပ်လို့မရပါဘူး ဖြစ်ရတဲ့အကြောင်းအရင်းက Ubuntu 15.04 ကနေစပြီးတော့ systemd က default ဖြစ်သွားပြီးတော့ Ubuntu 14.04 အတွက်ကို သုံးနေတာ ဖြစ်တဲ့အတွက် upstart တွေနဲ့က configure လုပ်လို့မရတော့ပါဘူး အဲဒီတော့ systemd အတွက် ကိုယ့်ဟာကိုယ် configure လုပ်ပေးဖို့လိုလာတယ်။

invoke-rc.d: mongod.service doesn't exist but the upstart job does. Nothing to start or stop until a systemd or init job is present.

ရှုပ်ရှုပ်ထွေးထွေး မဟုတ်ပေမယ့် နည်းနည်းတော့ manual အနေနဲ့ သွားပြီး configure ပေးဖို့လိုမယ် အရင်ဆုံး mongod.service ကို /lib/systemd/system/mongod.service ဆိုပြီး တခုသွားရေးရမယ် Config တွေကိုတော့ အောက်မှပြထားတဲ့ထဲက ကူးပြီးထည့်ရင်ရပါတယ် ထပ်ထည့်ချင်လည်း လိုအပ်တာထပ်ထည့်ပေါ့။

[Unit]
Description=MongoDB Database Server
After=syslog.target
After=network.target
[Service]
User=mongodb
Group=mongodb
PIDFile=/var/run/mongodb.pid
ExecStart=/usr/bin/mongod --quiet --config /etc/mongod.conf
[Install]
WantedBy=multi-user.target

ပြီးရင်တော့ config ထဲမှာသုံးထားတဲ့ Log file တွေနဲ့ process id file တွေကို Create လုပ်ပြီးတော့ Service အနေနဲ့သုံးမယ့် Account ကို Permission ပြောင်းပြီးရင်တော့ systemd ကို reload လုပ်ပြီး MongoDB Service ကို Enable လုပ်ပြီးတော့ သုံးလို့ရပါပြီ။

sudo touch /var/log/mongodb/mongod.log
sudo chown -R mongodb:mongodb /var/log/mongodb/
sudo touch /var/run/mongodb.pid
sudo chown -R mongodb:mongodb /var/run/mongodb.pid
sudo systemctl daemon-reload
sudo systemctl enable mongod.service
sudo systemctl start mongod.service