לפני זמן קצר כתבתי פוסט על איך ל התקין את MongoDB על Mac OS X. אולם רוב הפיתוח נעשה בדרך כלל על מכונות Unix/Linux. לכן היום נסתכל על איך להתקין MongoDB על מערכת Linux.
התקנת MongoDB על Linux
הגרסה הנוכחית של MongoDB היא 3.4.7 ואני אתקין את הגרסה ביטים 64 דרך שורת הפקודה. השלבים להתקנה של MongoDB על Linux הם פשוטים מאוד, פשוט עקוב אחרי פקודות הטרמינל הבאות כדי להוריד ולהתקין אותו.
- הורד וחלץ את בינריי MongoDB
root@dev [/home/journal]# mkdir mongodb
root@dev [/home/journal]# cd mongodb/
root@dev [/home/journal/mongodb]# curl -O https://fastdl.mongodb.org/linux/mongodb-linux-x86_64-3.4.7.tgz
% Total % Received % Xferd Average Speed Time Time Time Current
Dload Upload Total Spent Left Speed
100 82.7M 100 82.7M 0 0 1704k 0 0:00:49 0:00:49 --:--:-- 1334k
root@dev [/home/journal/mongodb]# tar xvf mongodb-linux-x86_64-3.4.7.tgz
mongodb-linux-x86_64-3.4.7/README
mongodb-linux-x86_64-3.4.7/THIRD-PARTY-NOTICES
mongodb-linux-x86_64-3.4.7/MPL-2
mongodb-linux-x86_64-3.4.7/GNU-AGPL-3.0
mongodb-linux-x86_64-3.4.7/bin/mongodump
mongodb-linux-x86_64-3.4.7/bin/mongorestore
mongodb-linux-x86_64-3.4.7/bin/mongoexport
mongodb-linux-x86_64-3.4.7/bin/mongoimport
mongodb-linux-x86_64-3.4.7/bin/mongostat
mongodb-linux-x86_64-3.4.7/bin/mongotop
mongodb-linux-x86_64-3.4.7/bin/bsondump
mongodb-linux-x86_64-3.4.7/bin/mongofiles
mongodb-linux-x86_64-3.4.7/bin/mongooplog
mongodb-linux-x86_64-3.4.7/bin/mongoreplay
mongodb-linux-x86_64-3.4.7/bin/mongoperf
mongodb-linux-x86_64-3.4.7/bin/mongod
mongodb-linux-x86_64-3.4.7/bin/mongos
mongodb-linux-x86_64-3.4.7/bin/mongo
- הוסף את ספריית בינריי MongoDB למשתנה ה- PATH
root@dev [/home/journal/mongodb]# mv mongodb-linux-x86_64-3.4.7 mongodb
root@dev [/home/journal/mongodb]# cd mongodb
root@dev [/home/journal/mongodb/mongodb]# echo $PATH
/usr/local/jdk/bin:/usr/local/sbin:/usr/local/bin:/sbin:/bin:/usr/sbin:/usr/bin:/usr/local/bin:/usr/X11R6/bin:/root/bin
root@dev [/home/journal/mongodb/mongodb]# export PATH=$PATH:/home/journal/mongodb/mongodb/bin
- צור תיקייה לקבצי MongoDB והתחל אותה
root@dev [/home/journal/mongodb/mongodb]# mkdir data
root@dev [/home/journal/mongodb/mongodb]# cd bin
root@dev [/home/journal/mongodb/mongodb/bin]# ./mongod --dbpath /home/journal/mongodb/mongodb/data &
[1] 30387
root@dev [/home/journal/mongodb/mongodb/bin]# 2014-08-04T13:56:05.916+0000 [initandlisten] MongoDB starting : pid=30387 port=27017 dbpath=/home/journal/mongodb/mongodb/data 64-bit host=dev.journaldev.com
2014-08-04T13:56:05.917+0000 [initandlisten] db version v3.4.7
2014-08-04T13:56:05.917+0000 [initandlisten] git version: 255f67a66f9603c59380b2a389e386910bbb52cb
2014-08-04T13:56:05.917+0000 [initandlisten] build info: Linux build12.nj1.10gen.cc 2.6.32-431.3.1.el6.x86_64 #1 SMP Fri Jan 3 21:39:27 UTC 2014 x86_64 BOOST_LIB_VERSION=1_49
2014-08-04T13:56:05.917+0000 [initandlisten] allocator: tcmalloc
2014-08-04T13:56:05.917+0000 [initandlisten] options: { storage: { dbPath: "/home/journal/mongodb/mongodb/data" } }
2014-08-04T13:56:05.922+0000 [initandlisten] journal dir=/home/journal/mongodb/mongodb/data/journal
2014-08-04T13:56:05.922+0000 [initandlisten] recover : no journal files present, no recovery needed
2014-08-04T13:56:06.064+0000 [FileAllocator] allocating new datafile /home/journal/mongodb/mongodb/data/local.ns, filling with zeroes...
2014-08-04T13:56:06.064+0000 [FileAllocator] creating directory /home/journal/mongodb/mongodb/data/_tmp
2014-08-04T13:56:06.067+0000 [FileAllocator] done allocating datafile /home/journal/mongodb/mongodb/data/local.ns, size: 16MB, took 0.001 secs
2014-08-04T13:56:06.069+0000 [FileAllocator] allocating new datafile /home/journal/mongodb/mongodb/data/local.0, filling with zeroes...
2014-08-04T13:56:06.070+0000 [FileAllocator] done allocating datafile /home/journal/mongodb/mongodb/data/local.0, size: 64MB, took 0.001 secs
2014-08-04T13:56:06.071+0000 [initandlisten] build index on: local.startup_log properties: { v: 1, key: { _id: 1 }, name: "_id_", ns: "local.startup_log" }
2014-08-04T13:56:06.071+0000 [initandlisten] added index to empty collection
2014-08-04T13:56:06.071+0000 [initandlisten] waiting for connections on port 27017
- השתמש בפקודת "ps" כדי לוודא ש- MongoDB פועל
root@dev [/home/journal/mongodb/mongodb/bin]#
root@dev [/home/journal/mongodb/mongodb/bin]# ps -eaf | grep mongo
root 7199 28009 0 14:09 pts/0 00:00:00 grep mongo
root 30387 28009 0 13:56 pts/0 00:00:02 ./mongod --dbpath /home/journal/mongodb/mongodb/data
root@dev [/home/journal/mongodb/mongodb/bin]#
זהו, MongoDB מותקן על המערכת Linux שלך ופועל בצורה תקינה. אולם, ייתכן ותרצה לייצא את ה- PATH דרך פרופיל המשתמש שלך, כלומר .bash_profile או .profile, כך שהוא לא יימחק בעת יציאתך מהטרמינל.
בצע פקודות MongoDB
עכשיו בואו נתחבר ל־MongoDB ונריץ כמה פקודות MongoDB כדי לוודא שהוא פועל כראוי.
root@dev [~]# cd /home/journal/mongodb/mongodb/bin/
root@dev [/home/journal/mongodb/mongodb/bin]# ./mongo
MongoDB shell version: 3.4.7
connecting to: test
> show dbs
admin (empty)
local 0.078GB
> use journaldev
switched to db journaldev
> db.names.save({"id":123,"name":"Pankaj"})
WriteResult({ "nInserted" : 1 })
> db.names.find()
{ "_id" : ObjectId("53df918adbef24e88560fa5b"), "id" : 123, "name" : "Pankaj" }
> db.datas.save({})
WriteResult({ "nInserted" : 1 })
> show collections
datas
names
system.indexes
> show dbs
admin (empty)
journaldev 0.078GB
local 0.078GB
> exit
bye
root@dev [/home/journal/mongodb/mongodb/bin]#
כפי שניתן לראות הכל נראה חלק ואני מסוגל לשמור ולאחזר נתונים ממסד הנתונים של MongoDB. אם תצאו מהטרמינל ממנו הופעל ה־MongoDB, הוא יפסיק לפעול. השתמשו בפקודת nohup
כדי להתחיל אותו, כך שהוא לא יפסיק אפילו לאחר שתסגרו את הטרמינל. דף הורדת MongoDB
Source:
https://www.digitalocean.com/community/tutorials/install-mongodb-linux