จะติดตั้งระบบฐานข้อมูล MongoDB บน ​​Ubuntu ได้อย่างไร?

MongoDB

ในบล็อกนี้เราได้พูดถึงระบบฐานข้อมูลบางระบบซึ่งระบบที่ได้รับความนิยมมากที่สุด ได้แก่ MariaDB และ MySQL เนื่องจากเป็นระบบที่มักรวมอยู่ใน Xampp หรือ Lampp คราวนี้เราจะมาพูดถึง อีกระบบหนึ่งซึ่งก็คือ MongoDB

MongoDB คือ เอกสารโอเพ่นซอร์สที่เน้นระบบฐานข้อมูล NoSQL, นี่คือ ระบบจัดการฐานข้อมูลเอกสารที่ทันสมัยออกแบบมาเพื่อการคงอยู่ของข้อมูลที่มีประสิทธิภาพสูง ความพร้อมใช้งานสูงเช่นเดียวกับการปรับขนาดอัตโนมัติโดยอาศัยเทคโนโลยีของเทคนิค NoSQL

แทนที่จะบันทึกข้อมูลในตารางเหมือนที่ทำในฐานข้อมูลเชิงสัมพันธ์ MongoDB จะบันทึกโครงสร้างข้อมูลในเอกสารซึ่งเป็นโครงสร้างข้อมูลที่ประกอบด้วยคู่ฟิลด์และค่า (เอกสาร MongoDB เปรียบได้กับออบเจ็กต์ JSON)

เนื่องจากมีประสิทธิภาพสูงและมีคุณสมบัติในการปรับขนาดที่ยอดเยี่ยมจึงถูกนำมาใช้เพื่อสร้างแอปพลิเคชันสมัยใหม่ที่ต้องการฐานข้อมูลที่ทรงพลังมีความสำคัญสูง

การติดตั้ง MongoDB บน ​​Ubuntu

ในการติดตั้งระบบฐานข้อมูลนี้ในระบบของเรา เราต้องเปิดเทอร์มินัลและดำเนินการตามคำสั่งต่อไปนี้:

sudo apt install mongodb

การติดตั้งเสร็จสิ้น บริการ MongoDB จะเริ่มโดยอัตโนมัติผ่าน systemd และกระบวนการจะทำงานบนพอร์ต 27017 คุณสามารถตรวจสอบสถานะได้โดยใช้คำสั่ง:

sudo systemctl status mongodb

ถ้าไม่เราสามารถบังคับให้เริ่มต้นด้วยคำสั่งนี้:

sudo systemctl start mongodb

การเปิดใช้งานการเชื่อมต่อระยะไกลกับ MongoDB

Mongo DB 1

โดยค่าเริ่มต้นระบบฐานข้อมูล MongoDB จะใช้พอร์ต 27017 ซึ่งเราต้องเปิด ในการยอมรับการเชื่อมต่อระยะไกลเราเปิดใช้งานด้วยคำสั่งต่อไปนี้เท่านั้น

sudo ufw allow 27017

โดยค่าเริ่มต้นพอร์ต 27017 สามารถเข้าถึงได้จากโลคัลแอดเดรส 127.0.0.1 เท่านั้น ในการอนุญาตการเชื่อมต่อระยะไกลไปยัง MongoDB จำเป็นต้องเพิ่มที่อยู่ IP ของเซิร์ฟเวอร์ในไฟล์ /etc/mongodb.conf

เพียงแก้ไขด้วย:

sudo nano

และเราจะเห็นสิ่งที่คล้ายกับสิ่งนี้:

bind_ip = 127.0.0.1, your_server_ip

#port = 27,017

ซึ่งเราแก้ไขด้วยข้อมูลจากเซิร์ฟเวอร์ของเรา

การอนุญาตให้เข้าถึง MongoDB จากทุกที่ทำให้สามารถเข้าถึงข้อมูลในฐานข้อมูลได้อย่างไม่ จำกัด ดังนั้นจึงเป็นการดีกว่าที่จะให้การเข้าถึงที่อยู่ IP เริ่มต้นเฉพาะตำแหน่งของพอร์ต MongoDB

sudo ufw allow from your_server_IP/32 to any port 27017

sudo ufw status

เมื่อเสร็จแล้วก็เพียงพอที่จะเริ่มบริการใหม่เพื่อให้การเปลี่ยนแปลงใหม่ถูกโหลดในตอนเริ่มต้นสิ่งนี้เราทำกับ:

sudo systemctl restart mongodb

สร้างผู้ใช้ใน MongoDB ด้วยรหัสผ่าน

โดยค่าเริ่มต้นฐานข้อมูลมีการเข้าถึงที่ค่อนข้างง่ายดังนั้นเพื่อเสริมสร้างสิ่งนี้เราสามารถสร้างผู้ใช้ด้วยรหัสผ่าน

MongoDB ใช้กลไกการพิสูจน์ตัวตน SCRAM โดยค่าเริ่มต้น. การใช้ SCRAM บนระบบจะตรวจสอบข้อมูลรับรองผู้ใช้ที่ให้มากับชื่อผู้ใช้รหัสผ่านและฐานข้อมูลการพิสูจน์ตัวตน

เพียงเริ่มคอนโซลฐานข้อมูลด้วยคำสั่งต่อไปนี้:

Mongo

เราสามารถสร้างรายการฐานข้อมูลที่มีอยู่ด้วย:

show dbs

เราสามารถสร้างผู้ใช้ที่จะช่วยให้เราสามารถจัดการผู้ใช้และฟังก์ชันต่างๆ เช่นการสร้างผู้ใช้การอนุญาตหรือการเพิกถอนบทบาทของผู้ใช้และการสร้างหรือแก้ไขบทบาทศุลกากร

เพียงพิมพ์

use admin

และเราสร้างผู้ใช้ด้วยคำสั่งต่อไปนี้โดยที่เราแทนที่ชื่อของผู้ใช้ "root" และรหัสผ่าน "password" โดยการเข้าถึงที่เราเห็นว่าเหมาะสม

db.createUser({user:"root", pwd:"password", roles:[{role:"root", db:"admin"}]})

เมื่อเสร็จแล้วเราต้องเปิดใช้งานวิธีการรับรองความถูกต้อง สำหรับสิ่งนี้เราจะแก้ไขไฟล์ต่อไปนี้:

sudo nano /lib/systemd/system/mongodb.service

และเราจะมองหาบรรทัดถัดไป:

ExecStart=/usr/bin/mongod --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

และ แก้ไขเพื่อให้เป็นดังนี้:

ExecStart=/usr/bin/mongod --auth --unixSocketPrefix=${SOCKETPATH} --config ${CONF} $DAEMON_OPTS

ตอนนี้ เราเพียงแค่รีบูตในฐานข้อมูล

systemctl daemon-reload

sudo systemctl restart mongodb

sudo systemctl status mongodb              

Y เราทดสอบวิธีการรับรองความถูกต้องด้วย:

mongo -u "usuario" -p --authenticationDatabase "contraseña"

แสดงความคิดเห็นของคุณ

อีเมล์ของคุณจะไม่ถูกเผยแพร่ ช่องที่ต้องการถูกทำเครื่องหมายด้วย *

*

*

  1. ผู้รับผิดชอบข้อมูล: Miguel ÁngelGatón
  2. วัตถุประสงค์ของข้อมูล: ควบคุมสแปมการจัดการความคิดเห็น
  3. ถูกต้องตามกฎหมาย: ความยินยอมของคุณ
  4. การสื่อสารข้อมูล: ข้อมูลจะไม่ถูกสื่อสารไปยังบุคคลที่สามยกเว้นตามข้อผูกพันทางกฎหมาย
  5. การจัดเก็บข้อมูล: ฐานข้อมูลที่โฮสต์โดย Occentus Networks (EU)
  6. สิทธิ์: คุณสามารถ จำกัด กู้คืนและลบข้อมูลของคุณได้ตลอดเวลา

  1.   ตรวจจับได้ dijo

    ช่วยฉันด้วยข้อผิดพลาดนี้

    2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] ข้อผิดพลาด: listDatabases ล้มเหลว: {
    «ตกลง»: 0,
    "Errmsg": "ไม่ได้รับอนุญาตให้ผู้ดูแลระบบดำเนินการคำสั่ง {listDatabases: 1.0, $ db: \" admin \ "}",
    "รหัส": 13,
    "CodeName": "ไม่ได้รับอนุญาต"
    }:
    _getErrorWithCode@src/mongo/shell/utils.js: 25:13
    Mongo.prototype.getDBs@src/mongo/shell/mongo.js: 65: 1
    shellHelper.show@src/mongo/shell/utils.js: 816: 19
    shellHelper@src/mongo/shell/utils.js: 706: 15
    @ (shellhelp2): 1: 1