كيفية تثبيت نظام قاعدة بيانات MongoDB على أوبونتو؟

MongoDB

تحدثنا في هذه المدونة عن بعض أنظمة قواعد البيانات ، من بينها أنظمة MariaDB و MySQL الأكثر شيوعًا ، نظرًا لأنها الأنظمة التي يتم تضمينها عادةً في Xampp أو Lampp. هذه المرة سوف نتحدث عنها نظام آخر وهو MongoDB.

MongoDB هو مستند مفتوح المصدر موجه لنظام قاعدة بيانات NoSQL، هذا هو نظام حديث لإدارة قاعدة بيانات المستندات مصمم لاستمرارية البيانات عالية الأداء ، التوافر العالي ، بالإضافة إلى القياس التلقائي ، بناءً على تقنية تقنية NoSQL.

بدلاً من حفظ البيانات في الجداول كما هو الحال في قواعد البيانات العلائقية ، يحفظ MongoDB هياكل البيانات في المستند، وهي بنية بيانات تتكون من أزواج الحقول والقيمة (مستندات MongoDB قابلة للمقارنة مع كائنات JSON).

نظرًا لأنه يوفر أداءً عاليًا وخصائص قابلية توسعة ممتازة ، يتم استخدامه لبناء تطبيقات حديثة تتطلب قواعد بيانات قوية وحاسمة للمهام ومتاحة للغاية.

تثبيت MongoDB على أوبونتو

لتثبيت نظام قاعدة البيانات هذا على نظامنا ، علينا فقط فتح Terminal وتنفيذ الأمر التالي فيه:

sudo apt install mongodb

تم التثبيت ، ستبدأ خدمة MongoDB تلقائيًا عبر systemd وستعمل العملية على المنفذ 27017. يمكنك التحقق من حالتها باستخدام الأمر:

sudo systemctl status mongodb

إذا لم يكن الأمر كذلك ، فيمكننا البدء بهذا الأمر:

sudo systemctl start mongodb

تمكين الاتصالات عن بعد لـ MongoDB

MongoDB 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" ، من خلال crecenciales الوصول التي نراها مناسبة.

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 (الاتحاد الأوروبي)
  6. الحقوق: يمكنك في أي وقت تقييد معلوماتك واستعادتها وحذفها.

  1.   قابل للكشف قال

    ساعدني في حل هذا الخطأ.

    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