المتطلبات الأساسية
- خادم Vultr يعمل حتى الآن Arch Linux (انظر هذه المقالة )
- وصول سودو:
- الأوامر المطلوب تشغيلها كجذر مسبوقة بـ
#، والأوامر التي يمكن تشغيلها كمستخدم عادي من قبل $. الطريقة الموصى بها لتشغيل الأوامر كجذر هي ، كمستخدم عادي ، بادئة كل واحد منهم sudo.
تثبيت قاعدة بيانات MongoDB 4.0
MongoDB موجود في AUR (مستودع مستخدم القوس). هناك مجموعتان من الحزم يمكنك استخدامهما. راجع حزم البناء على Arch Linux (بما في ذلك AUR) لتجميع وتثبيت أي من الحزم:
- تجميع من المصدر. استخدم حزم AUR
mongodbوربما mongodb-tools". لاحظ أن هذا يستغرق حوالي 180 جيجابايت ، وهذا تجميع طويل. مع 4 نوى ، يستغرق حوالي 7 ساعات. هذه هي الطريقة الموصى بها ، لأنها تستخدم أعلام تجميع القوس.
- استخدم الثنائي MongoDB المدمج مسبقًا. استخدم حزمة AUR
mongodb-binوربما mongodb-tools-bin. هذا يتخطى مرحلة التجميع بالكامل ، وينزل ثنائيًا مُنشئًا مسبقًا من mongodb.org ، ويغلفه بملفات التكوين الضرورية.
بعد تثبيت الحزمة ، قم بتشغيل MongoDB ، واجعلها تبدأ بعد كل تمهيد. خلال هذه البداية الأولى ، ستخصص الملفات مسبقًا لمجلدتها وبيانات أخرى ، الأمر الذي قد يستغرق بعض الوقت قبل انتهاء قاعدة البيانات القادمة:
# systemctl enable --now mongodb
اختبار الاتصال
الاتصال بـ MongoDB:
$ mongo
ليستقيل:
> exit
اعتبارات جدار الحماية
على الرغم من أن تكوين جدار الحماية دائمًا فكرة جيدة ، إلا أن MongoDB يستمع افتراضيًا فقط على المنفذ 27017على المضيف المحلي ، لذلك لن يتلقى أي حركة مرور خارجية.
تتطلب المصادقة
بشكل افتراضي ، يسمح MongoDB لأي شخص بالاتصال به دون أي نوع من المصادقة ، وهو ما يمثل خطرًا أمنيًا بشكل واضح.
إنشاء مستخدم قاعدة بيانات الجذر:
$ mongo
> use admin
> db.createUser(
... {
... user: "root",
... pwd: "YOUR-NEW-PASSWORD",
... roles: [ { role: "userAdminAnyDatabase", db: "admin" }, "readWriteAnyDatabase" ]
... }
... )
> exit
تحرير /etc/mongodb.conf، وإذا كنت تستخدم الحزمة ، mongodbأضف:
security:
authorization: "enabled"
في حالة استخدام الحزمة ، mongodb-binأضف:
auth = true
إعادة تشغيل MongoDB:
# systemctl restart mongodb
الآن ، على الرغم من أنه لا يزال بإمكانك الاتصال بـ MongoDB بدون مصادقة ، إلا أنه لن يقوم بأي شيء بدونه:
$ mongodb
> db.getUsers()
... Error: command usersInfo requires authentication :
الاتصال بـ MongoDB كجذر:
$ mongodb -u root
بدلاً من ذلك ، اتصل بـ MongoDB ، ثم المصادقة داخله:
$ mongodb
> use admin
> db.auth("root", "<YOUR-DATABASE-ROOT-PASSWORD>")
هام: الترقيات
نظرًا لأن MongoDB أصبح الآن جزءًا من AUR ، pacmanفلن يتم تجميعه وترقيته تلقائيًا إلى إصدارات جديدة ، عند ترقية نظام القوس بالكامل. ستحتاج إلى إعادة تجميع إصدار جديد يدويًا وتثبيت الحزمة الجديدة. قبل القيام بذلك ، من المهم إلقاء نظرة على ملاحظات إصدار MongoDB ، لمعرفة ما إذا كان هناك أي خطوات إضافية تحتاج إلى اتخاذها. من الجيد إجراء نسخ احتياطي لقاعدة البيانات قبل الترقية أيضًا.
إيقاف تشغيل غير نظيفة
إذا لم يتم إيقاف تشغيل MongoDB تمامًا ، ولم يتم استرداده تلقائيًا باستخدام دفتر اليومية الخاص به في التمهيد التالي ، فقد تحتاج إلى تشغيل ما يلي:
sudo -u mongodb mongod --repair --dbpath /var/lib/mongodb/
اعتمادًا على حجم قاعدة البيانات والفهارس المستخدمة ، يمكن أن تتراوح هذه العملية من ثوانٍ إلى ساعات.