ตอนนี้อยู่ในช่วงปรับปรุงโปรแกรมให้สามารถเก็บข้อมูลขนาดใหญ่ ที่มีรูปแบบที่หลากหลาย เลยคิดว่า MongoDB น่าจะเป็นทางเลือกหนึ่ง
ลองมาดูวิธีติดตั้ง MongoDB 4.0 Community Edition ที่เราสามารถดาวน์โหลดมาติดตั้งใช้งานได้ฟรีแบบถูกต้อง โดยในที่นี้จะใช้วิธีติดตั้งจาก repo ของ MongoDB เพื่อให้ได้เวอร์ชันใหม่ล่าสุด
หมายเหตุ จริงๆ สามารถใช้คำสั่ง apt install ติดตั้งแพ็คเกจ mongodb ได้เลย แต่เราจะได้แค่เวอร์ชัน 3.6 ซึ่งเป็นเวอร์ชันที่อยู่ใน repo ของ Ubuntu 18.04 มาตรฐาน
ตัวอย่างการใช้คำสั่ง apt show เพื่อตรวจสอบข้อมูลแพ็คเกจ
alice@u18:~$ apt show mongodb
Package: mongodb
Version: 1:3.6.3-0ubuntu1
Priority: optional
Section: universe/database
...
วิธีการในบทความนี้มาจากเว็บไซต์ Install MongoDB Community Edition on Ubuntu
ติดตั้ง MongoDB public GPG Key เข้าระบบ apt
ใช้คำสั่ง apt-key adv เพื่อดาวน์โหลดและติดตั้ง GPG Key ของ MongoDB เพื่อใช้ตรวจสอบความถูกต้องของการติดตั้งแพ็คเกจ
alice@u18:~$ sudo apt-key adv \
--keyserver hkp://keyserver.ubuntu.com:80 \
--recv 9DA31620334BD75D9DCB49F368818C72E52529D4
gpg: key 68818C72E52529D4: public key "MongoDB 4.0 Release Signing Key <packaging@mongodb.com>" imported
gpg: Total number processed: 1
gpg: imported: 1
เพิ่ม repo ของ MongoDB
เพิ่มที่อยู่ repo ของ MongoDB เข้าไปในรายชื่อ repo ที่เราสามารถใช้คำสั่ง apt install ติดตั้งแพ็คเกจได้
alice@u18:~$ echo "deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse" \ | sudo tee /etc/apt/sources.list.d/mongodb-org-4.0.list
คำสั่งด้านบน คือการสร้างไฟล์ mongodb-org-4.0.list ขึ้นมา ลอง cat ไฟล์เพื่อดูข้อความในไฟล์
alice@u18:~$ cat /etc/apt/sources.list.d/mongodb-org-4.0.list deb [ arch=amd64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/4.0 multiverse
รัน apt update เพื่อปรับปรุงข้อมูลแพ็คเกจใน repo
alice@u18:~$ sudo apt update
หลังจากเพิ่ม repo ของ MongoDB และรันคำสั่ง apt update แล้ว ถ้าลองรันคำสั่ง apt list ดู จะเห็นรายชื่อแพ็คเกจ mongodb-org ซึ่งเป็นรายชื่อแพ็คเกจจาก repo ของ MongoDB
alice@u18:~$ apt list | grep mongodb ... mongodb/bionic 1:3.6.3-0ubuntu1 amd64 mongodb-clients/bionic 1:3.6.3-0ubuntu1 amd64 mongodb-dev/bionic 2:1.1.2-6ubuntu3 all mongodb-org/bionic 4.0.6 amd64 mongodb-org-mongos/bionic 4.0.6 amd64 mongodb-org-server/bionic 4.0.6 amd64 mongodb-org-shell/bionic 4.0.6 amd64 mongodb-org-tools/bionic 4.0.6 amd64 mongodb-server/bionic 1:3.6.3-0ubuntu1 all mongodb-server-core/bionic 1:3.6.3-0ubuntu1 amd64
ติดตั้งแพ็คเกจ mongodb-org
ใช้คำสั่ง apt install เพื่อติดตั้งแพ็คเกจ mongodb-org
alice@u18:~$ sudo apt install -y mongodb-org Reading package lists... Done Building dependency tree Reading state information... Done The following additional packages will be installed: mongodb-org-mongos mongodb-org-server mongodb-org-shell mongodb-org-tools ... Adding system user `mongodb' (UID 111) ... Adding new user `mongodb' (UID 111) with group `nogroup' ... Not creating home directory `/home/mongodb'. Adding group `mongodb' (GID 113) ... Done. Adding user `mongodb' to group `mongodb' ... Adding user mongodb to group mongodb Done. Setting up mongodb-org (4.0.6) ...
สังเกตว่าจะมีแพ็คเกจที่เกี่ยวข้องถูกติดตั้งมาด้วย เพื่อให้เราสามารถใช้งานได้เลย
และจะมีชื่อผู้ใช้งาน mongodb ถูกสร้างขึ้นมาเพื่อใช้รันเซอร์วิส mongodb เพื่อความปลอดภัยของระบ
รันเซอร์วิส mongodb
ใช้คำสั่ง systemctl start เพื่อรันเซอร์วิส mongodb ซึ่งจะทำหน้าที่เป็น MongoDB Server
alice@u18:~$ sudo systemctl start mongod
ตัวอย่างการใช้คำสั่ง systemctl status เพื่อดูสถานะเซอร์วิส mongod
alice@u18:~$ sudo systemctl status mongod
● mongod.service - MongoDB Database Server
Loaded: loaded (/lib/systemd/system/mongod.service; ...
Active: active (running) since Wed 2019-03-19 ...
Docs: https://docs.mongodb.org/manual
Main PID: 2748 (mongod)
CGroup: /system.slice/mongod.service
└─2748 /usr/bin/mongod --config /etc/mongod.conf
Mar 19 19:11:15 u18 systemd[1]: Started MongoDB Database Server.
ตัวอย่างการใช้คำสั่ง ps เพื่อดูโปรเซสของ mongod
alice@u18:~$ ps -ef | grep mongod mongodb 2748 1 1 19:11 ? 00:00:01 /usr/bin/mongod --config /etc/mongod.conf
สังเกตว่าชื่อผู้ที่รันโปรเซสจะเป็น mongodb
ตัวอย่างการรันคำสั่ง mongo ซึ่งเป็น shell หรือไคลเอนต์ เพื่อใช้เชื่อมต่อเข้ากับเซิรฟ์เวอร์ MongoDB แล้วสามารถรันคำสั่งต่างๆ เพื่อดึงข้อมูลได้
alice@u18:~$ mongo
MongoDB shell version v4.0.6
connecting to: mongodb://127.0.0.1:27017/?gssapiServiceName=mongodb
Implicit session: session { "id" : UUID("...") }
MongoDB server version: 4.0.6
Welcome to the MongoDB shell.
For interactive help, type "help".
...
> exit
bye
พิมพ์คำสั่ง exit เพื่อออกจาก mongo