בבלוג זה דיברנו על כמה מערכות מסדי נתונים, ביניהן הפופולריות ביותר הן 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
מערכת מסדי הנתונים של 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"
עזור לי עם השגיאה הזו.
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