حلّ المجتمع

Nextcloud وMariaDB على CasaOS: إصلاح مشكلة رفض الاتصال

A CasaOS Nextcloud tutorial later received a Connection refused report from a user whose Nextcloud and MariaDB containers were not communicating.

لا يزال البرنامج التعليمي القديم لـ CasaOS يشير إلى الاتجاه المعماري الصحيح—إذ ينبغي لـ Nextcloud استخدام قاعدة بيانات حقيقية للاستخدام العادي من قِبل عدة مستخدمين—لكن المتابعة المنشورة في عام 2024 لم تحلّ خطأ «رفض الاتصال». كان المستخدم قد وضع Nextcloud وMariaDB على شبكة bridge، ومع ذلك ظلّت الحاويات غير قادرة على الاتصال.

النمط الحالي الأكثر أمانًا هو تشغيل الخدمتين ضمن مشروع Docker Compose واحد أو شبكة مستخدم مشتركة واحدة، وتوجيه Nextcloud إلى اسم خدمة MariaDB، بدلًا من عنوان IP لحاوية قد يتغير.

ما أكدته سلسلة النقاش الأصلية فعليًا

كان المنشور الأصلي في عام 2023 يتضمن رابطًا إلى برنامج تعليمي. وفي عام 2024، أبلغ مستخدم آخر عن الخطأ SQLSTATE[HY000] [2002] Connection refused أثناء إعداد حساب المسؤول في Nextcloud، واشتبه في أن الحاويات لا تتواصل مع بعضها. ولم يؤكد أي رد لاحق في السلسلة حلًا للمشكلة.

وهذا يعني أنه لا ينبغي تقديم عبارة «ضع الخدمتين على bridge» باعتبارها حلًا كاملًا.

استخدم شبكة Compose مشتركة واسم الخدمة

يستخدم مثال Nextcloud وMariaDB الحالي لـ Compose خدمة MariaDB باسم db، ويضبط MYSQL_HOST=db لحاوية Nextcloud. ثم يحل نظام DNS الداخلي في Docker قاعدة البيانات باستخدام اسم الخدمة.

وهذا أكثر استدامة من إدخال عنوان مؤقت لحاوية مثل 172.x.x.x.

طابق بيانات اعتماد قاعدة البيانات في الجانبين

يحتاج Nextcloud إلى اسم قاعدة البيانات واسم المستخدم وكلمة المرور نفسها التي تنشئها MariaDB. يوصي دليل قاعدة بيانات Nextcloud الحالي باستخدام MariaDB في عمليات النشر المخصصة لبيئات الإنتاج، ويوثق قيم قاعدة البيانات المطلوبة.

إذا تم حل اسم المضيف ولكن فشلت المصادقة، فقارن متغيرات بيئة MariaDB وقيم Nextcloud وسجلات قاعدة البيانات قبل إعادة إنشاء المكدس.

احفظ قاعدة البيانات وبيانات Nextcloud بشكل دائم

لا تخزّن حالة MariaDB داخل طبقة الحاوية فقط. احفظ /var/lib/mysql ومسارات التطبيق والبيانات الخاصة بـ Nextcloud التي يحددها الإصدار الدقيق للصورة التي تنشرها. انسخ قاعدة البيانات احتياطيًا مع إعدادات Nextcloud وبيانات المستخدمين.

يساعد دليل نشر Nextcloud في فصل تخزين قاعدة البيانات والتطبيق عن ملفات المستخدمين الكبيرة.

الخلاصة

ظلت متابعة «رفض الاتصال» في المنتدى دون حل مؤكد. بالنسبة إلى عمليات النشر الحالية على CasaOS أو ZimaOS، استخدم مكدس Compose واحدًا أو شبكة Docker مشتركة واحدة، وصِل Nextcloud بـ MariaDB عبر اسم الخدمة، وحافظ على اتساق بيانات الاعتماد، واحفظ تخزين التطبيق وقاعدة البيانات بشكل دائم.