כיצד להתקין את מערכת מסדי הנתונים של MongoDB באובונטו?

MongoDB

בבלוג זה דיברנו על כמה מערכות מסדי נתונים, ביניהן הפופולריות ביותר הן MariaDB ו- MySQL, מכיוון שהן המערכות הכלולות בדרך כלל ב- Xampp או ב- Lampp. הפעם אנחנו הולכים לדבר עליו מערכת אחרת שהיא MongoDB.

MongoDB הוא מערכת מסד נתונים מסוג NoSQL המכוונת לקוד פתוח, זה מערכת ניהול מסד נתונים מודרנית המיועדת להתמדה בביצועים גבוהים של נתונים, זמינות גבוהה, כמו גם קנה מידה אוטומטי, המבוסס על הטכנולוגיה של טכניקת NoSQL.

במקום לשמור נתונים בטבלאות כפי שזה נעשה בבסיסי נתונים יחסיים, MongoDB שומר מבני נתונים במסמך, שהוא מבנה נתונים המורכב מזוגות שדה וערך (מסמכי MongoDB דומים לאובייקטים של JSON).

מכיוון שהוא מספק ביצועים גבוהים ומאפייני מדרגיות מצוינים, הוא משמש לבניית יישומים מודרניים הדורשים מאגרי מידע חזקים, קריטיים למשימה וזמינים במיוחד.

התקנת MongoDB באובונטו

להתקנת מערכת מסד נתונים זו במערכת שלנו, עלינו רק לפתוח מסוף ולבצע בו את הפקודה הבאה:

sudo apt install mongodb

ההתקנה בוצעה, שירות MongoDB יתחיל אוטומטית באמצעות מערכת והתהליך יופעל ביציאה 27017. תוכל לבדוק את מצבו באמצעות הפקודה:

sudo systemctl status mongodb

אם לא, אנו יכולים לכפות את ההתחלה בפקודה זו:

sudo systemctl start mongodb

הפעלת חיבורים מרוחקים ל- MongoDB

מונגו 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

ואנחנו יוצרים את המשתמש באמצעות הפקודה הבאה, שם אנו מחליפים את שם המשתמש "שורש" ואת סיסמת "סיסמה", על ידי מאפייני הגישה שנראים לנו מתאימים.

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. אחראי לנתונים: מיגל אנחל גטון
  2. מטרת הנתונים: בקרת ספאם, ניהול תגובות.
  3. לגיטימציה: הסכמתך
  4. מסירת הנתונים: הנתונים לא יועברו לצדדים שלישיים אלא בהתחייבות חוקית.
  5. אחסון נתונים: מסד נתונים המתארח על ידי Occentus Networks (EU)
  6. זכויות: בכל עת תוכל להגביל, לשחזר ולמחוק את המידע שלך.

  1.   ניתן לזיהוי דיג'ו

    עזור לי עם השגיאה הזו.

    2021-03-24T21: 33: 16.233 + 0000 E QUERY [thread1] שגיאה: רשימה בסיסי נתונים נכשלו: {
    «בסדר»: 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