خصم ٥٠٪ على جميع الخطط، لفترة محدودة. يبدأ من $2.48/mo
١٢ دقيقة متبقية
قواعد البيانات والتحليلات

كيفية تثبيت MongoDB على أحدث ثلاث إصدارات من Ubuntu (خطوة بخطوة)

جيم شوارتز By جيم شوارتز ١٢ دقيقة للقراءة
الشعار الأصلي لـ MongoDB معروضاً على خادم بتصميم مستقبلي، يُجسّد تثبيت MongoDB على Ubuntu، مع شعار Cloudzy وعنوان المقال ووصف موجز لمحتواه.

إذن، قررت استخدام MongoDB، وهو خيار رائع alternative to MariaDB لبناء تطبيق MERN stack، أو منصة تحليلات، أو أي نظام قائم على المستندات، لكنك وجدت نفسك أمام طريق مسدود بسبب أوامر Linux وأخطاء الطرفية التي لا تنتهي. 

لا داعي للقلق، فهذا الدليل يغطي كل ما تحتاج إلى معرفته من الألف إلى الياء لتثبيت MongoDB على Ubuntu.

MongoDB يستخدم X.Y.Z الإصدارات. 8.0 هو رئيسي سلسلة الإصدارات، و 8.2 هو ثانوي إصدار ضمن دورة الإصدار 8.0 ذاتها. تضيف الإصدارات الثانوية ميزات جديدة داخل نفس الدورة الرئيسية، وابتداءً من الإصدار 8.0، أصبح بالإمكان تثبيتها على البنية التحتية المحلية لحالات استخدام محددة (مثل البحث والبحث المتجهي). MongoDB 8.0 على Ubuntu يدعم 24.04 (Noble) و22.04 (Jammy) و20.04 (Focal) على الأنظمة ذات ٦٤ بت، مع دعم ARM64 على منصات مختارة.

المتطلبات الأساسية: GnuPG وCurl

قبل تثبيت الإصدار الرسمي mongodb-org الحزمة Ubuntu تتطلب شرطين أساسيين: GnuPG و Curlهذه الأدوات تمنح Ubuntu صلاحية تنزيل MongoDB، لأن Ubuntu نفسه mongodb الحزمة غير مُدارة من قِبل MongoDB Inc. وتتعارض مع الرسمية mongodb-org الحزمة. إذا كنت قد قمت بتثبيت mongodb تأكد من إلغاء تثبيته.

بعد ذلك، نفّذ الأمر sudo apt-get install gnupg curl. Curl أداة لتنزيل الملفات من الإنترنت، وهي ضرورية لاسترداد مفتاح الأمان الخاص بـ MongoDB. أما GnuPG فيستخدمه Ubuntu للتحقق من صحة البرامج. إذا لم يكن GnuPG مثبتاً، فلن يتمكن Ubuntu من التحقق من حزم MongoDB.

تحقق من أن الطرفية نجحت في تثبيت GnuPG وCurl. إذا تم ذلك بنجاح، ستبدو النتيجة على النحو التالي:مخرجات طرفية Ubuntu بعد إضافة GnuPG وCurl

استيراد مفتاح GPG الخاص بـ MongoDB

يستخدم مدير الحزم APT في Ubuntu مفاتيح GPG للتحقق من الحزم قبل تثبيتها. بدون هذا المفتاح، لن يسمح Ubuntu بإضافة مستودعات MongoDB. اكتب الأمر التالي في الطرفية لإضافة المفتاح:

curl -fsSL https://www.mongodb.org/static/pgp/server-8.0.asc | \
   sudo gpg -o /usr/share/keyrings/mongodb-server-8.0.gpg \
   --dearmor

إذا نجح الأمر، ستبدو مخرجات الطرفية على النحو التالي:طرفية Ubuntu بعد إضافة مفتاح GPG الخاص بـ MongoDB بنجاح.

باختصار، يقوم هذا الأمر بتنزيل التوقيع الأمني لـ MongoDB، وتحويله إلى صيغة يستطيع Ubuntu قراءتها، ثم حفظه في مجلد نظام آمن. فيما يلي شرح لكل جزء من سطر الأمر:

  1. curl -fsSL رابط يُنزّل المفتاح الرسمي لـ MongoDB
  2. –dearmor يحوّل المفتاح من صيغة نصية إلى صيغة ثنائية ليتمكن Ubuntu من قراءته
  3. -o /usr/share/keyrings/mongodb-server-8.0.gpg يحفظ الملف الثنائي في المجلد الذي يخزن فيه Ubuntu المفاتيح الموثوقة

إذا نفّذت جميع الأوامر بدقة، سيُضاف مفتاح GPG العام دون أي مشكلات. غير أن بعض المستخدمين يواجهون أخطاءً عند تنزيل MongoDB بسبب عدم تطابق مفتاح GPG. أخطاء من قبيل:

NO_PUBKEY
The following signatures couldn't be verified
public key not available

تظهر حين لا تتّبع أوامر مفتاح GPG السابقة بالضبط، وتستخدم بدلاً منها sudo apt-key لأن الإصدارات الحديثة من Ubuntu لا توصي باستخدامه.

إضافة مستودع MongoDB

إضافة مستودع MongoDB تُنشئ ملفاً يُخبر Ubuntu بأن حزم MongoDB متاحة على عنوان إنترنت محدد. أنشئ ملف القائمة في /etc/apt/sources.list.d/mongodb-org-8.0.list عن طريق كتابة سطر المستودع فيه باستخدام echo … | sudo tee …

هنا تصبح الأمور أكثر تعقيداً، إذ تتطلب كل نسخة من Ubuntu صيغة مختلفة من هذا الأمر. سنستعرض الآن كيفية استيراد ملف القائمة في كل نسخة من النسخ الثلاث لـ Ubuntu المذكورة سابقاً.

Ubuntu 24.04 (Noble)

لإنشاء ملف القائمة على Ubuntu 24.04، ضع ببساطة echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu noble/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list على طرفيّتك.

قد يبدو هذا الأمر معقداً للوهلة الأولى، لكن لا تقلق. سنقوم بتقسيم الأمر إلى أجزاء، وعندها سيصبح واضحاً تماماً.

  1. echo يطبع نصاً
  2. /etc/apt/sources.list.d هو المجلد الذي يخزن فيه Ubuntu تعريفات مصادر البرامج. كل ملف بامتداد .list تنسيق داخل المجلد يوجّه Ubuntu إلى موقع محدد لتنزيل البرنامج منه
  3. لا يمكنك الكتابة في مجلدات النظام افتراضياً بوصفك مستخدماً عادياً. تي شيرت تمنح المستخدم صلاحية خاصة لكتابة النص في ملفات النظام، عند استخدام sudo
  4. نبيل هو الاسم الرمزي لـ Ubuntu 24.04. لكل إصدار من Ubuntu اسم رمزي، مثل:
الإصدار اسم الكود
20.04 فوكال
22.04 Jammy
24.04 نبيل

إذا لم تُطابق إصدار Ubuntu مع سطر الأوامر الصحيح، فلن يتعرف Ubuntu على مستودع MongoDB.

Ubuntu 22.04 (Jammy)

إضافة ملف القائمة إلى Ubuntu Jammy تبدو بنفس الطريقة، لكن يجب إدخال سطر الأوامر مع استبدال نبيل مع jammy، كما يلي:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu jammy/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

تأكد من أن هذا الإصدار يطابق نسخة Ubuntu لديك، وإلا فستفشل العملية مجدداً.

Ubuntu 20.04 (Focal)

اتبع نفس الخطوات هنا، لكن بدلاً من نبيل or jammy، ضع focal:

echo "deb [ arch=amd64,arm64 signed-by=/usr/share/keyrings/mongodb-server-8.0.gpg ] https://repo.mongodb.org/apt/ubuntu focal/mongodb-org/8.0 multiverse" | sudo tee /etc/apt/sources.list.d/mongodb-org-8.0.list

بعد إعداد المستودع، يمكنك المتابعة لتثبيت mongodb-org.

تحديث قاعدة بيانات الحزم

بعد أن أصبح المستودع معروفاً لـ Ubuntu، تحتاج إلى إعادة تحميل قاعدة بيانات الحزم داخله، لكي تشمل MongoDB من الآن فصاعداً. نفّذ الأمر التالي:

sudo apt-get update

هذا الأمر موحّد عبر جميع إصدارات Ubuntu، وإن تخطّيته، لن تتعرف Ubuntu على MongoDB. إذا نجح الأمر، ستظهر في طرفيتك النتيجة التالية:مخرجات طرفية Ubuntu بعد تشغيل sudo apt-get update

 الآن، بعد إعادة تحميل قاعدة بيانات الحزم، حان وقت تنزيل حزم MongoDB.

تثبيت MongoDB Community Server

تتوفر إصدارات متعددة من MongoDB للتثبيت، غير أن معظم المستخدمين يختارون أحدث إصدار مستقر كونه الخيار الأنسب. لتثبيت أحدث إصدار مستقر، نفّذ sudo apt-get install -y mongodb-org

قامت Ubuntu الآن بتنزيل حزم MongoDB وتثبيتها، وأنشأت حساب مستخدم MongoDB ومجلد البيانات الخاص به، وسجّلت MongoDB كخدمة نظام. بهذا نكون قد أتممنا تثبيت MongoDB على Ubuntu. والآن، لنقم بتشغيله.

كيفية تشغيل MongoDB

لتشغيل MongoDB، تحتاج إلى إخبار مدير الخدمات في Ubuntu وهو "systemd" بأن يتعامل مع MongoDB كخدمة تعمل في الخلفية. للقيام بذلك، اكتب الأمر التالي في طرفيتك:

sudo systemctl start mongod

إذا نجح الأمر، ستشغّل Ubuntu تطبيق MongoDB في الخلفية. أما إذا لم ينجح، فقد تظهر لك رسالة خطأ مشابهة لـ فشل في بدء mongod.service.

قد يحدث هذا بسبب عدة مشكلات شائعة:

  • خطأ في ملف الإعدادات in /etc/mongod.conf (أخطاء المسافات البادئة في YAML شائعة الحدوث)
  • تعارض في المنفذ (المنفذ 27017 مشغول بالفعل)
  • مشكلة في الأذونات على مجلدات البيانات أو السجلات (var/lib/mongodb أو var/log/mongodb)
  • القرص ممتلئ or تلف في نظام الملفات

ثلاثة أوامر لتشخيص المشكلةإعداد خادم متطور مع ثلاثة أوامر في طرفية Ubuntu وسحابة تشير إلى مسار الترقية.

قد يكون من السهل تخمين سبب عدم تشغيل MongoDB، لكن تحديد السبب الدقيق أمر آخر. إليك ثلاث طرق للكشف عن مصدر الخطأ:

  1. التحقق من حالة الخدمة: sudo systemctl status mongod –no-pager
  2. فحص السجلات التفصيلية (الأهم): sudo journalctl -u mongod –no-pager -n 100
  3. فحص ملف سجل MongoDB الخاص

تجدر الإشارة إلى أنه إذا كان القرص ممتلئاً أو كانت ملفات النظام تالفة، فإن الحل يتعلق بالأجهزة لا بالبرمجيات. قد يحتاج المستخدمون إلى ترقية أجهزة خادمهم لتشغيل MongoDB بكفاءة إذا كان إعدادهم الحالي قديماً. 

إذا كان شراء خادم كامل خارج ميزانيتك، فألقِ نظرة على Cloudzy Ubuntu VPS للحصول على بيئة نظيفة على خادمك الخاص مع توزيعة Ubuntu من اختيارك. يأتي مع 24/7 دعم وسرعة شبكة تصل إلى 40Gbps سرعة الشبكة، بفضل تخزين NVMe SSD و DDR5 RAM تخزين.

علاوة على ذلك، يتميز بزمن استجابة منخفض، 99.95% وقت تشغيل، و ١٤ يوماً ضمان استرداد الأموال. والأهم من ذلك أنه متاح في 12 موقعاً حول العالم بسعر مناسب.

أبرز ثلاثة حلول لتشغيل MongoDB

لا توجد طريقة واحدة تكفي لتشخيص مشكلة MongoDB وإصلاحها في خطوة واحدة. إليك أكثر الحلول شيوعاً التي قد تساعدك على تشغيل MongoDB.

  1. خطأ في مسافات البادئة بملف إعداد YAML. لنفترض أنك عدّلت /etc/mongod.conf أعِد التحقق من المسافات البادئة عبر الأمر التالي sudo nano /etc/mongod.conf. الملف YAML حساس جداً للمسافات، لذا تأكد من أن كل مستوى يحتوي على مسافتين فقط في /etc/mongod.conf.
  2. المنفذ 27017 مشغول. إذا كان برنامج آخر يستخدم المنفذ 27017، أوقفه أو غيّر منفذ MongoDB في mongod.conf. إذا لم تكن متأكداً مما يعمل على المنفذ 27017، يمكنك تشغيل الأمر sudo ss -lntp | grep 27017 للتحقق من ذلك
  3. مشكلة في صلاحيات مجلد البيانات. في بعض الأحيان لا تملك MongoDB الصلاحيات الكافية للتشغيل على نظامك، مما يمنعها من العمل كلياً. شغّل أولاً sudo chown -R mongodb:mongodb /var/lib/mongodb /var/log/mongodb، ثم أعد تشغيل MongoDB بالأمر sudo systemctl restart mongod

وفقاً لـ الموقع الرسمي لـ MongoDB، وهناك طريقة أخرى للتعامل مع هذه المشكلة، وهي إعادة تحميل الـ daemon بالأمر sudo systemctl daemon-reload، ثم تشغيل الأمر الأول، sudo systemctl start mongod، مرة أخرى.

إذا لم يكن هناك mongod.service، فهذا يعني أن عملية التثبيت لم تضع وحدة systemd، لذا أعد تثبيت حزمة mongodb-org .

بعد كل ما سبق، يمكنك التحقق من نجاح تشغيل MongoDB بالأمر sudo systemctl status mongod. إذا أظهر الطرفية نشط (قيد التشغيل)، أنت جاهز للبدء. لكن ثمة بعض الإعدادات الإضافية التي ستجعل تجربتك أكثر سلاسةً.

أتمتة MongoDBإعداد خادم مستقبلي مع رمز أتمتة MongoDB + طرفية تعرض أمر MongoDB + ملف سجل

لا يعمل MongoDB تلقائياً عند كل تشغيل للخادم؛ ستحتاج إلى تكرار بعض الخطوات السابقة في كل مرة. يمكنك اختيارياً إعداد Ubuntu لتشغيل MongoDB تلقائياً بعد تحميل سطح المكتب.

نفّذ ببساطة sudo systemctl enable mongod في الطرفية، وسيُخبر ذلك النظامَ بتشغيل MongoDB تلقائياً بعد كل إعادة تشغيل. كما يمكنك إعادة تشغيل عملية mongod بإصدار الأمر sudo systemctl restart mongod. علاوةً على ذلك، يمكن للمستخدمين تتبع أي أخطاء أو رسائل مهمة من خلال مراجعة المخرجات في الملف:

/var/log/mongodb/mongod.log

بعد اكتمال الإعداد، لنبدأ باستخدام mongod.

فتح واجهة MongoDB

للتفاعل مع قاعدة البيانات، يجب على المستخدمين فتح واجهة MongoDB بإصدار الأمر mongosh. فكّر فيها كطرفية أوامر مخصصة لـ MongoDB أو كوحدة تحكم MySQL. يمكنك أيضاً التفاعل مع MongoDB عبر أدوات واجهة رسومية كبرامج تشغيل MongoDB. أما إن أردت التفاعل معه من الطرفية، mongosh فهذا هو الأمر المناسب لذلك.

سيعمل MongoDB الآن بشكل كامل، غير أن ثمة خطوات إضافية يجب مراعاتها لتأمينه.

تفعيل المصادقة في MongoDBعملية مصادقة MongoDB + رمز قفل + تأكيد المصادقة.

لا يتضمن MongoDB حماية بكلمة مرور افتراضياً، إذ يُفترض أن يكون لديك وصول مسبق لإنشاء مستخدم. إليك طريقة بسيطة للقيام بذلك:

إنشاء مستخدم مسؤول

أولاً، انتقل إلى قاعدة بيانات المسؤول بالأمر:

use admin

ثم أنشئ مستخدماً باستخدام db.createUser({…}). أدخل فيه

  • اسم المستخدم
  • كلمة المرور
  • الدور

بالنسبة للدور، يُفضَّل كتابة root وهو ما يعني التحكم الكامل أو صلاحيات المسؤول.

تفعيل المصادقة

الآن بعد أن أنشأنا المستخدم الخاص بنا، نحتاج إلى تعديل ملف /etc/mongod.conf لأن هذا الملف يتحكم في طريقة عمل MongoDB. ضع في اعتبارك أنك بعد تعديل هذا الملف يجب دائماً إعادة تشغيل خدمة mongod باستخدام sudo systemctl restart mongod. ما نحتاج إلى تغييره هنا هو معامل يُسمى authorization ويبدو كالتالي:

security:

  authorization:

لإتمام عملية المصادقة، ما عليك سوى تغيير قيمة authorization على النحو التالي:

security:

  authorization: enabled

من الآن فصاعداً، يتطلب MongoDB تسجيل الدخول، وبذلك تكون المصادقة قد اكتملت. لننتقل الآن إلى إعداد آخر يستفيد من إمكانات MongoDB بالكامل.

فتح منفذ جدار الحماية

كما أشرنا سابقاً، يعمل MongoDB على المنفذ 27017. بما أن جدار الحماية يحجب المنافذ بشكل افتراضي، عليك إخباره بالسماح للتطبيقات بالعمل على المنفذ 27017. لتحقيق ذلك، نفِّذ الأمر التالي:

ufw allow from YOUR_IP to any port 27017

بدلاً من ذلك، يمكنك أيضاً تنفيذ الأمر ufw allow 27017، لكن كن حذراً، لأن تنفيذ هذا الأمر سيسمح لأي جهاز على الإنترنت بالوصول إلى هذا المنفذ. الخيار الأول هو الأكثر أماناً على الأرجح، إذ يقصر الوصول إلى المنفذ على عنوان IP الخاص بك فقط.

قد يواجه المستخدمون بعض التحديات عند تشغيل MongoDB، كمشكلة الوصول عن بُعد. تابع القراءة لمعرفة كيفية حلها.

مشكلة الوصول عن بُعدإعداد خادم بثلاثة شاشات لتهيئة إعدادات الوصول عن بُعد في MongoDB مع أوامر الطرفية.

يُشغَّل MongoDB بالمعامل bindIp. bindIp يحصر MongoDB على 127.0.0.1، مما يسمح بالاتصالات المحلية فقط. لذلك، إذا حاولت الاتصال بخادم MongoDB من موقع آخر، فلن يُمنح لك الوصول، إذ يُهيَّأ MongoDB افتراضياً للسماح بالاتصالات المحلية فقط ما لم يُعدَّل هذا الإعداد.

مجدداً، توجّه إلى /etc/mongod.conf، وستجد ثلاثة أسطر كالتالي:

net:

  port: 27017

  bindIp: 127.0.0.1

إذا أردت السماح بالاتصالات عن بُعد للمستخدم mongod ، فعدّل القيم الموضحة أعلاه على النحو التالي:

net:

  port: 27017

  bindIp: 0.0.0.0

بعد ذلك، أعد تشغيل خدمة mongod باستخدام sudo systemctl restart mongod كما تفعل مع أي تعديل آخر تجريه على الملف.

لقد منحت خدمة mongod صلاحية قبول الاتصالات عن بُعد. لكن كن حذراً، فهذا الإجراء سيعرّض قاعدة بياناتك للإنترنت بالكامل إن لم تكن قد ضبطت المصادقة للمستخدم mongod بعد. ثمة الكثير من البوتات التي تفحص باستمرار منافذ MongoDB المفتوحة، لذا تأكد دائماً من أن مستخدم mongod لديه كلمة مرور.

ملخص عام

تهانينا، لقد أتممت جميع الخطوات اللازمة لإعداد خدمة MongoDB محسّنة لنظام Ubuntu. فيما يلي خريطة ذهنية تتتبع كل خطوة وردت في هذا المقال.

الأمر الوظيفة
تحديث apt تحديث قائمة الحزم
تثبيت apt تثبيت البرامج
curl تنزيل ملف
gpg إدارة مفاتيح التشفير
echo طباعة نص
تي شيرت الكتابة إلى ملف محمي
systemctl start تشغيل الخدمة
تفعيل الخدمة عند الإقلاع بدء التشغيل عند الإقلاع
حالة systemctl التحقق من الخدمة
mongosh الدخول إلى shell الخاص بـ MongoDB
تحرير /etc/mongod.conf تفعيل المصادقة
ufw إدارة جدار الحماية
bindIp السماح بالوصول عن بُعد

هذا من شأنه أن يساعدك على فهم العملية بأكملها. لكن إن كان إعداد MongoDB بنفسك أمرًا مرهقًا، فلا تتردد في تشغيل MongoDB VPS للحصول على خادم Ubuntu 24.04 LTS خاص بك مع تثبيت MongoDB مسبقًا.

يأتي مع 99.95% uptime, 24/7 دعم، و ١٤ يوماً ضمان استرداد الأموال. علاوةً على ذلك، يدعم ما يصل إلى 40 Gbps من النطاق الترددي بفضل DDR5 RAM و تخزين NVMe SSD من التخزين. ولا داعي للقلق بشأن موقعك الجغرافي، فهو متاح أيضًا في 12 موقعاً حول العالم بسعر مناسب.

بعد كل ما سبق، تكون قد نجحت في إعداد خدمة MongoDB الخاصة بك بالكامل، مزوّدةً بجميع الإعدادات اللازمة لدعم أحمال العمل والأعمال على مستوى الإنتاج.

مشاركة

المزيد من المدونة

تابع القراءة.

إدارة بيانات الأعمال بذكاء: استراتيجيات تخزين ونسخ احتياطي بأسلوب "السحابة" مع VPS
قواعد البيانات والتحليلات

إدارة بيانات الأعمال بذكاء: استراتيجيات تخزين ونسخ احتياطي بأسلوب "السحابة" مع VPS

استخدام VPS لإدارة بيانات الأعمال بأمان هو التوجه الذي أوصي به في كل مرة تقرر فيها شركة التوقف عن تشتيت ملفاتها بين أجهزة اللابتوب ومرفقات البريد الإلكتروني والمجلدات المنسية

ريكسا سيروسريكسا سيروس ٧ دقائق للقراءة
Materialized View مقابل View
قواعد البيانات والتحليلات

Materialized View مقابل View: فهم دورهما في قواعد البيانات

في أنظمة قواعد البيانات، يُخزّن الـ Materialized View نتائج استعلام محسوبة مسبقاً على شكل جدول مادي. ولأن البيانات مخزّنة فعلياً على القرص، فإن الاستعلامات المعقدة

آيفي جونسونآيفي جونسون ٧ دقائق للقراءة
SnowFlake مقابل DataBricks
قواعد البيانات والتحليلات

Databricks مقابل Snowflake: مقارنة محايدة لمتخصصي البيانات 🧱❄️

بالنسبة للشركات التي تعتمد على البيانات في اتخاذ قراراتها، سواء أكانت منصات تجارة إلكترونية تتتبع سلوك العملاء، أم مؤسسات مالية تستشرف الاتجاهات، أم شركات تقنية

Allan Van Kirk

(Names are kept verbatim across languages)Allan Van Kirk (Names are kept verbatim across languages) قراءة في ١٣ دقيقة

هل أنت مستعد للنشر؟ يبدأ من ٢٫٤٨ دولار/شهر.

سحابة مستقلة منذ ٢٠٠٨. AMD EPYC، NVMe، 40 Gbps. ضمان استرداد المبلغ لمدة ١٤ يومًا.