حل مشكلة "فشل الاتصال بقاعدة البيانات" في ownCloud 10 باستخدام MySQL

أسرع طريقة لعزل خطأ "فشل الاتصال بقاعدة البيانات" في ownCloud 10 هي اختبار نفس حساب MySQL واسم قاعدة البيانات والمضيف من خادم ownCloud نفسه. إذا فشل تسجيل الدخول، فقم أولاً بإصلاح توفر MySQL، أو الوصول إلى الشبكة، أو بيانات الاعتماد، أو الصلاحيات الممنوحة. إذا نجح، فتحقق من إعدادات ownCloud config/config.php، وامتداد PHP pdo_mysql، وما إذا كان PHP يستخدم المقبس المقصود أو اتصال TCP.

يشرح هذا الدليل كيفية تثبيت خادم ownCloud Server 10 الحالي باستخدام MySQL أو MariaDB على نظام Linux. تختلف أسماء الخدمات وأوامر الحزم باختلاف نظام التشغيل ونوع التثبيت. يُرجى عمل نسخة احتياطية من الإعدادات وقاعدة البيانات قبل تعديل إعدادات الإنتاج. لا تُشارك كلمة مرور قاعدة البيانات في أي مشكلة أو تلصقها في سجل أوامر عام.

ماذا يخبرك هذا الخطأ؟

هذه الرسالة عرضٌ وليست تشخيصًا. راجع سجلات ownCloud وسجلات خادم الويب أو PHP عند حدوث العطل. قد يُشير الاستثناء الأساسي إلى برنامج تشغيل مفقود، أو اتصال مرفوض، أو تسجيل دخول مرفوض، أو قاعدة بيانات غير معروفة. يتطلب دليل قاعدة بيانات ownCloud لنظام Linux pdo_mysqlإضافة PHP، ويُشير إلى أهمية إعدادات المقبس عند استخدام MySQL محليًا. يُوصي الدليل باختبار الوصول باستخدام عميل سطر أوامر MySQL.

رسالة أو دليلالمنطقة المحتملة للتفتيش
could not find driverأو خطأ في برنامج تشغيل PDOلم يتم pdo_mysqlتفعيل بيئة تشغيل PHP للويب.
SQLSTATE[HY000] [2002]أو "لا يمكن الاتصال"تم إيقاف MySQL، أو أن المضيف أو المنفذ خاطئ، أو أن جدار الحماية يحظر TCP، أو أن مسار المقبس خاطئ.
Access denied for userلا تتطابق كلمة المرور أو مضيف الحساب أو إعدادات مصادقة MySQL.
Unknown databaseاسم قاعدة البيانات المُكوّنة به خطأ إملائي، أو مفقود، أو غير مرئي للحساب.

قد تختلف رموز الخطأ الدقيقة باختلاف إصدارات PHP وMySQL وMariaDB ونظام التشغيل. اعتبرها مؤشرات، وتحقق من السبب باستخدام الفحوصات الموضحة أدناه. تشير وثائق MySQL الخاصة برفض الوصول إلى أن مطابقة الحساب والمضيف من الأسباب الشائعة.

هل يستطيع مضيف ownCloud الوصول إلى MySQL؟

تحقق مما إذا كان MySQL يعمل على خادم ownCloud، أو جهاز آخر، أو حاوية. على نظام Linux، تحقق من الخدمة. أسماء الوحدات الشائعة هي mysqlو mariadb؛ استخدم الوحدة المثبتة على خادمك.

sudo systemctl status mysql
sudo systemctl status mariadb

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

sudo journalctl -u mariadb --since "30 minutes ago"
sudo systemctl start mariadb

استبدل اسم الخدمة حسب الحاجة. تشغيل الخدمة لا يثبت قدرة ownCloud على المصادقة؛ تابع اختبار الحساب.

بالنسبة لقاعدة بيانات بعيدة، اختبر نظام أسماء النطاقات (DNS) ومنفذ TCP المُهيأ من مضيف ownCloud. يستمع MySQL عادةً على المنفذ 3306، مع العلم أن بعض عمليات النشر قد تستخدم منفذًا آخر.

getent hosts db.example.net
nc -vz db.example.net 3306

يشير فشل الفحص إلى وجود مشكلة في نظام أسماء النطاقات (DNS)، أو التوجيه، أو جدار الحماية، أو إعدادات مستمع قاعدة البيانات. اسمح بالاتصالات من خادم ownCloud عبر شبكة خاصة فقط كلما أمكن ذلك. لا تعرض MySQL للإنترنت العام كاختصار.

هل يعمل حساب قاعدة البيانات من مضيف ownCloud؟

شغّل عميل MySQL على خادم التطبيق بنفس اسم قاعدة البيانات، واسم المستخدم، وعنوان المضيف الذي سيستخدمه ownCloud. -pيُطلب منك إدخال كلمة المرور بشكل خاص، مما يجنّبك إدخالها في الأمر نفسه.

mysql -u oc_app -p -h localhost owncloud

بالنسبة لقاعدة البيانات البعيدة، استبدل localhostاسم المضيف الخاص بها. إذا نجح تسجيل الدخول، فقم بإجراء عملية تحقق بسيطة.

SELECT DATABASE(), CURRENT_USER();
SHOW TABLES;
EXIT;

يؤكد هذا المصادقة الأساسية والوصول إلى قاعدة البيانات المحددة. في حال فشل العملية، اقرأ الخطأ بالتفصيل واسم المستخدم/المضيف الذي يُبلغه MySQL. يتعامل MySQL مع اسم المستخدم والمضيف معًا عند مطابقة الحساب. لاحظ أيضًا أن localhostنظام Linux يستخدم عادةً مقبس Unix، بينما 127.0.0.1يفرض نظام آخر استخدام TCP. اختبر نفس طريقة الاتصال التي يستخدمها إعداد ownCloud الخاص بك.

mysql -u oc_app -p -h 127.0.0.1 owncloud

هل إعدادات قاعدة بيانات ownCloud صحيحة؟

افحص الملف النشط config/config.phpفي دليل تثبيت ownCloud. يتضمن مرجع تكوين ownCloud قائمة بنوع قاعدة البيانات واسمها واسم المستخدم وكلمة المرور؛ كما يُظهر دليل قاعدة البيانات الخاص به المضيف وبادئة الجدول. يشبه تكوين MySQL النموذجي ما يلي:

'dbtype' => 'mysql',
'dbname' => 'owncloud',
'dbuser' => 'oc_app',
'dbpassword' => 'REDACTED',
'dbhost' => 'localhost',
'dbtableprefix' => 'oc_',

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

بعد التعديل، تأكد من أن الملف هو ملف PHP صالح باستخدام ملف PHP الثنائي الخاص بتثبيتك:

php -l /var/www/owncloud/config/config.php

قد يختلف مسار التثبيت لديك. قيّد الوصول إلى هذا الملف config.php؛ فهو يحتوي على بيانات اعتماد قاعدة البيانات وقيم حساسة أخرى.

هل تم تفعيل برنامج تشغيل MySQL الخاص بلغة PHP لتطبيق الويب؟

يتطلب دليل قاعدة بيانات ownCloud 10 ما يلي pdo_mysql: تحقق من إصدار PHP والوحدات النمطية المحملة:

php -v
php -m | grep -i pdo_mysql

إذا كانت الوحدة مفقودة، فقم بتثبيت حزمة MySQL PDO المناسبة لإصدار PHP لديك، ثم أعد تشغيل خادم الويب أو مجموعة PHP-FPM ذات الصلة. تختلف أسماء الحزم بين أنظمة Ubuntu وDebian وSUSE وRed Hat وصور الحاويات. قد لا تكون الوحدة المُفعّلة لـ PHP سطر الأوامر مُفعّلة لـ Apache أو PHP-FPM، لذا تحقق من إعدادات PHP لبيئة تشغيل الويب أيضًا. تجنب ترك صفحة تشخيص عامة تكشف معلومات إعدادات PHP.

هل من الممكن أن يكون إعداد المقبس أو المضيف خاطئًا؟

في نظام لينكس، قد يستخدم عميل MySQL مقبس يونكس localhost، بينما 127.0.0.1يستخدم عميل PHP بروتوكول TCP. إذا كان MySQL مثبتًا على نفس الجهاز، فتحقق مما إذا كان ملف PHP mysql.default_socketيشير إلى ملف المقبس الذي أنشأه خادم قاعدة البيانات. قارن إعدادات المقبس والمنفذ لخادم قاعدة البيانات مع إعدادات PHP وقيمة المضيف في ownCloud.

إذا كان MySQL يعمل عن بُعد، localhostفاستخدم جهاز ownCloud وليس خادم قاعدة البيانات. عيّن اسم مضيف قاعدة البيانات الذي يمكن الوصول إليه، وتأكد من أن MySQL يستمع على الواجهة المُخصصة. bind-addressقد يمنع جدار الحماية أو خاصية الوصول المحلي فقط الوصول عن بُعد حتى عند عمل أوامر قاعدة البيانات المحلية. قيّد الوصول إلى العنوان الخاص بخادم التطبيق.

هل يتطابق حساب MySQL والصلاحيات مع مضيف العميل؟

تتضمن حسابات MySQL اسم مستخدم ومكون مضيف. لذلك، يُعتبر كل من `<اسم المستخدم> 'oc_app'@'localhost'` و` 'oc_app'@'10.0.0.25'<اسم المضيف>` إدخالين مختلفين للحساب. استخدم اتصالًا إداريًا لفحص الحسابات المتاحة والصلاحيات الممنوحة للحساب الذي يجب أن يتطابق مع:

SELECT User, Host FROM mysql.user;
SHOW GRANTS FOR 'oc_app'@'localhost';

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

CREATE USER 'oc_app'@'localhost' IDENTIFIED BY 'replace-with-a-strong-password';
GRANT ALL PRIVILEGES ON owncloud.* TO 'oc_app'@'localhost';

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

كيف تتأكد من إتمام عملية الإصلاح؟

بعد تغيير عنصر واحد في كل مرة، تأكد من أن تسجيل الدخول إلى سطر أوامر MySQL يعمل من مضيف ownCloud، وأن بيئة تشغيل PHP الخاصة بالويب تعمل بشكل صحيح pdo_mysql، وأن سجل ownCloud لم يعد يسجل أي استثناءات في الاتصال. أعد تحميل الموقع وقم بإجراء عمليات قراءة وكتابة أساسية فقط بعد أن يصبح الموقع متاحًا مرة أخرى.

إذا نجح تسجيل الدخول عبر سطر الأوامر، ولكن ما زال ownCloud يفشل، قارن نموذج المضيف، والحساب، واسم قاعدة البيانات، وبيئة تشغيل PHP المستخدمة من قِبل عملية الويب مع الاختبار الناجح. تحقق من سجلات خادم الويب أو PHP-FPM وقت الطلب. بالنسبة للخادم المُثبَّت مسبقًا، أصلح إعداداته الحالية بعناية؛ لا تحذف قاعدة البيانات أو تُعِد تشغيل التثبيت كحل سريع للمشاكل.

للمزيد من المعلومات، يُرجى الاطلاع على دليل تكوين قاعدة بيانات ownCloud Server 10.16 واستكشاف الأخطاء وإصلاحها ، ودليل تكوين ownCloud 10.15 ، والأدلة الرسمية لـ MySQL حول استكشاف أخطاء الاتصال وإصلاحها وأخطاء رفض الوصول . تختلف أسماء الخدمات وأوامر الحزم والإعدادات الدقيقة باختلاف نظام التشغيل وبيئة النشر.

اترك تعليقاً

أفضل 10 أدوات مسح Ping للعثور على الأجهزة على شبكتك

أفضل 10 أدوات مسح Ping للعثور على الأجهزة على شبكتك

قارن بين 10 أدوات مسح الشبكة المحلية (Ping) لاكتشاف الشبكات المحلية بسرعة، وإجراء مسح شامل للأنظمة الأساسية المختلفة، وإدارة عناوين IP. تعرّف على ما يمكن أن يكشفه لك المسح وما لا يمكنه كشفه.

أفضل 6 أدوات لإدارة الشبكة لتتبع الأداء

أفضل 6 أدوات لإدارة الشبكة لتتبع الأداء

قارن بين ست أدوات لإدارة الشبكة لمراقبة الأداء، بما في ذلك تغطية SNMP، ورسم الخرائط، والتنبيهات، ونماذج النشر، والمفاضلات المتعلقة بالتكلفة.

أفضل برامج تحليل شبكة الواي فاي لأنظمة ويندوز، وiOS، وأندرويد

أفضل برامج تحليل شبكة الواي فاي لأنظمة ويندوز، وiOS، وأندرويد

قارن بين أفضل برامج تحليل شبكة Wi-Fi لأنظمة Windows و iPhone و Android، بما في ذلك أدوات ازدحام القنوات وتغطية الإشارة والخرائط الحرارية واستكشاف أخطاء الشبكة وإصلاحها.

مراقبة الاتصال: 7 أدوات مجانية ومفتوحة المصدر لمراقبة توافر الشبكة

مراقبة الاتصال: 7 أدوات مجانية ومفتوحة المصدر لمراقبة توافر الشبكة

قارن بين سبعة برامج مراقبة زمن الاستجابة المجانية والمفتوحة المصدر، بدءًا من مجموعات الشبكة الكاملة وحتى مجسات زمن الاستجابة المركزة، واختر البرنامج المناسب من حيث التوافر وفقدان الحزم والسجل.

جودة الخدمة في الشبكات: ما هي جودة الخدمة وكيف تعمل

جودة الخدمة في الشبكات: ما هي جودة الخدمة وكيف تعمل

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

أفضل الممارسات لمراقبة الشبكات: ما الذي يجب تتبعه وما هي الأدوات التي يجب استخدامها

أفضل الممارسات لمراقبة الشبكات: ما الذي يجب تتبعه وما هي الأدوات التي يجب استخدامها

قم ببناء نظام مراقبة شبكة عملي مع تغطية واضحة للأجهزة، ومقاييس أداء مفيدة، وتنبيهات قابلة للتنفيذ، ومقارنة بين SolarWinds NPM وPRTG وOpManager.

أفضل برامج خادم SFTP لنقل الملفات بشكل آمن

أفضل برامج خادم SFTP لنقل الملفات بشكل آمن

قارن بين برامج خوادم SFTP الموثوقة لأنظمة ويندوز ولينكس، بما في ذلك OpenSSH وBitvise وSolarWinds وSFTPGo. اعثر على الخيار الأمثل الذي يلبي احتياجاتك الأمنية واحتياجات نقل الملفات.

أفضل 7 أدوات لإدارة عناوين IP لفرق الشبكات

أفضل 7 أدوات لإدارة عناوين IP لفرق الشبكات

قارن بين سبع أدوات لإدارة عناوين IP لاكتشاف الشبكات الفرعية، وتنسيق DNS وDHCP، وجرد الشبكة، وIPAM مفتوح المصدر.

أفضل 10 أدوات لفحص الشبكات لاكتشاف الأجهزة وعناوين IP

أفضل 10 أدوات لفحص الشبكات لاكتشاف الأجهزة وعناوين IP

قارن بين أدوات فحص الشبكة لاكتشاف الأجهزة بسرعة، وعمليات فحص IP عبر الأنظمة الأساسية، وإدارة عناوين IP للمؤسسات، مع إرشادات حول مطابقة كل خيار مع شبكتك.

كيفية استخدام Nmap لتتبع المسار وقراءة مسار الشبكة

كيفية استخدام Nmap لتتبع المسار وقراءة مسار الشبكة

استخدم خيار --traceroute في Nmap لرسم خرائط القفزات إلى مضيف مصرح به، وفهم مخرجات القفزة وRTT، واستكشاف الأخطاء وإصلاحها في الاستجابات المفقودة دون الإفراط في المسح.