ติดตั้ง MongoDB 4.0 บน Ubuntu 18.04

ตอนนี้อยู่ในช่วงปรับปรุงโปรแกรมให้สามารถเก็บข้อมูลขนาดใหญ่ ที่มีรูปแบบที่หลากหลาย เลยคิดว่า 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

ข้อมูลอ้างอิง

Leave a Reply

Your email address will not be published.