Install MongoDB

                มาลองลง Mongo DataBase กันครับ เหตุที่ต้องใช้เนื่องด้วยมีโครงการที่เพิ่งเริ่มต้น และไม่สามารถตอบได้ว่าจะมีการเก็บข้อมูลเพิ่มในส่วนของคอลัมภ์ข้อมูลหรือไม่ ดังนั้นอาจจะมีการเปลี่ยนแปลงได้ตลอดเวลา การใช้ดาต้าเบสตัวนี้อาจจะเหมาะสมกว่า sql หรือตัวอื่นๆ ที่ต้องระบุความสัมพันธ์ของฐานข้อมูลกันตั้งแต่ต้น ซึ่งตัวที่ใช้จะเป็นของ Community edition ที่ใช้งานได้ฟรีนะครับ

  1. wget -qO - https://www.mongodb.org/static/pgp/server-5.0.asc | sudo apt-key add - ให้ใช้คำสั่งนี้ใน terminal เพื่อใช้ key สาธารณะนะครับ ถ้าได้จะขึ้น OK (ตัวนี้ของ version 5 ล่าสุดในปัจจุบันนะครับ)
  2. ถ้าไม่ได้ให้ใช้คำสั่ง sudo apt install gnupg ก่อนแล้วย้อนไปที่ข้อ 1 นะครับ
  3. echo "deb [ arch=amd64,arm64 ] https://repo.mongodb.org/apt/ubuntu bionic/mongodb-org/5.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-5.0.list ใช้แอด repo นะครับ (ตัวนี้ของ ubuntu 18.04 นะครับ ถ้าเวอร์ชั่นอื่นๆ ดูได้จากลิ้งค์ข้างบนที่ให้ไปนะครับ)
  4. sudo apt update เราจะเห็นพาธของ MongoDB ขึ้นมานะครับ 
  5. sudo apt-get install -y mongodb-org=5.0.0 mongodb-org-database=5.0.0 mongodb-org-server=5.0.0 mongodb-org-shell=5.0.0 mongodb-org-mongos=5.0.0 mongodb-org-tools=5.0.0 อันนี้ลงแบบเจาะจงเวอร์ชั่น 5 นะครับ ถ้าเอาแค่เวอร์ชั่นใหม่สุดใช้แค่คำสั่ง sudo apt install -y mongodb-org ก็พอครับ (สามารถเช็คเวอร์ชั่นได้ด้วยคำสั่ง  mongo -version นะครับ)
  6. ซึ่งๆ มันก็จะอัพเดตให้เราเองอยู่ดี 555 เพราะงั้นเราเลยต้องเซ็ตเพิ่มให้มันหยุดการอัพเดตออโต้ด้วยคำสั่งชุดนนี้นะครับ

    echo " mongodb-org hold" | sudo dpkg --set-selections
    echo "
    mongodb-org-database hold" | sudo dpkg --set-selections
    echo "
    mongodb-org-server hold" | sudo dpkg --set-selections
    echo "
    mongodb-org-shell hold" | sudo dpkg --set-selections
    echo "
    mongodb-org-mongos hold" | sudo dpkg --set-selections 
    echo "
    mongodb-org-tools hold" | sudo dpkg --set-selections

    ใส่ทีละบรรทัดนะครับ เพราะมันจะล็อคกันคนละส่วน ทีนี้ฐานข้อมูลเราก็จะไม่อัพเดตอีกต่อไป (กรณีต้องการเอาออกนะครับ sudo apt-mark unhold mongodb-org ไล่ไปทีละชื่อนะครับ)
  7. ps --no-headers -o comm 1 เช็คแล้วได้ systemd  ดังนั้นสั่งเริ่มทำงานฐานข้อมูลได้เลย (ถ้าได้ Init ต้องใช้อีกคำสั่งนะครับ ดูในลิ้งค์ข้างบนเช่นกัน แต่ต้องตัวเก่าซึ่งไม่น่าจะมีคนใช้กันเท่าไหร่)
  8. sudo systemctl start mongod หรือ  sudo service mongod start สั่งเริ่มทำงานของฐานข้อมูลนะครับ
  9. sudo systemctl status mongod หรือ  sudo service mongod status  เพื่อตรวจสอบการทำงานของฐานข้อมูลเรานะครับ
  10. อันนี้ไว้ใช้รีสตาร์ทฐานข้อมูลนะครับ sudo systemctl restart mongod หรือ   sudo service mongod restart เพราะการปรับเปลี่ยนบางอย่างต้องใช้
  11. mongo อันนี้คำสั่งสำหรับเข้าไปใช้งานฐานข้อมูลนะครับ แน่นอนต้องใช้ทุกครั้งตอนเข้าใช้งาน ซึ่งเดี๋ยวในส่วนการใช้งานจะอธิบายกันอีกที ส่วนนี้แค่ติดตั้ง และวิธีถอนการติดตั้งก่อน
  12. การถอนการติดตั้งนะครับ ก่อนอื่นให้หยุดการทำงานของฐานข้อมูลด้วยคำสั่ง sudo systemctl stop mongod หรือ  sudo service mongod stop แล้วตามด้วยคำสั่ง sudo apt-get purge mongodb-org*  -y นะครับ
  13. การลบในส่วนของ log file ด้วย sudo rm -r /var/log/mongodb
  14. การลบในส่วนประกอบอื่นๆ นะครับ  sudo rm /etc/apt/sources.list.d/mongodb*.list
  15. อันนี้ปัญหาส่วนที่เจอบ่อยนะครับ เวลาสั่ง MongoDB stop แล้วสั่ง start ใหม่ไม่ทำงานนนะครับ ให้ใช้คำสั่ง  sudo lsof -i -P -n | grep " mongod " เช็คว่ามันยังมีการทำงานค้างอยู่รึเปล่า  (ซึ่งมันออโต้สตาร์ทตอนเปิดเครื่องด้วย ส่วนมากก็เจอปัญหาเดียวกัน) ถ้ามีให้ใช้คำสั่ง  kill -9  NumberPID ซึ่ง  NumberPID เป็นข้อมูลอันดับที่สอง ถัดจากชื่อ  mongod นะครับ
  16. การแก้ปัญหาที่ MongoDB ออโต้สตาร์ทแล้วค้างใน process สามารถทำได้ด้วยคำสั่ง  echo manual | sudo tee /etc/init/mongod.override นะครับ ทีนี้จะออโต้สตาร์ทได้ปกติละ
  17. การปิดการทำงานออโต้สตาร์ทของ MongoDB นะครับ ให้ใช้คำสั่ง  sudo systemctl disable mongod นะครับ แน่นอนว่าถ้าอยากให้มันกลับไปทำงานออโต้สตาร์ทใหม่ก็ใช้คำสั่ง sudo systemctl enable mongod นะครับ
  18. ซึ่งถ้าบางทีหาก MongoDB มี error วิธีแก้ปัญหาเบื้องต้นคือถอน และติดตั้งใหม่ตามข้อ 12 -14 นะครับ (วิธีแก้อื่นๆ ดู ที่นี้นะครับ)
  19. อันนี้คือการลบในส่วนของฐานข้อมูลด้วยคำสั่ง  sudo rm -r /var/lib/mongodb  ถ้าข้อมูลต้องเอากลับมาใช้ใหม่อย่าลืมทำ backup ไว้ก่อนนะครับ

                จบแล้วนะครับ (กว่าจะจบลงได้กับหลายปัญหา ที่หาไม่ได้ตามหนังสือ และแม้แต่ตามกระทู้ต่างประเทศก็ยังมีน้อยที่พูดกันตรงจุด ใช้เวลาหลายวันในการหาทางแก้ปัญหาอยู่เหมือนกัน) ต่อไปเราจะมาเริ่มที่คำสั่งการใช้งานฐานข้อมูลกันนะครับ


    ความคิดเห็น

    โพสต์ยอดนิยมจากบล็อกนี้

    โปรโมชั่นเน็ต TOT

    โน๊ตบุ๊ค acer switch sa5-271 แบตบวม T^T

    Blog นี้สร้างเพื่อ?