الأخبار التكنولوجية والاستعراضات والنصائح!

تم وضع جدول MySQL على أنه تعطل وفشل الإصلاح الأخير

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

"تم وضع علامة MySQL Table على أنه تعطل وفشل الإصلاح (التلقائي؟)".

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

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

حل واحد – إصلاح الجدول باستخدام قيادة myisamchk

  1. تسجيل الدخول في الخادم الخاص بك باستخدام SSH مثل القيادة – سه [email protected]
  2. إيقاف MySQL / الخدمة عن طريق تنفيذ الأمر mysql stop
  3. تغيير الدليل إلى قاعدة بيانات MySQL. يوجد الدليل عادةً في / var / lib / mysql. أمر الاستخدام هو cd / var / lib / mysql / YOUR_DATABASE_NAME
  4. الآن ، عليك ببساطة تشغيل الأمر myisamchk عن طريق التنفيذ – myisamchk -r table_name

Note – في الخطوة أعلاه ، يجب استبدال اسم الجدول الفعلي بـ "اسم الجدول". سيذكر إخراج الأمر استرداد الجدول وأيضًا إصلاح أي سجلات تالفة.

  1. بدء تشغيل خدمة MySQL مرة أخرى عن طريق تنفيذ الأمر – خدمة mysql start

سيتم حل مشكلة جدول MySQL الآن ويمكنك الاستعلام عن الجداول في قاعدة البيانات من خلال MySQL CLI.

الحل الثاني – البحث وإصلاح الجداول المكسورة

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

للعثور على الجدول الذي تم تحديده على أنه متعطل ويحتاج إلى إصلاح ، قم بتنفيذ هذه الأوامر

  1. # myisamchk -s /var/lib/mysql/*/*.MYI
  2. تم وضع علامة "/var/lib/mysql/dbname/table_name.MYI" على جدول MyISAM على أنه محطّم ويجب إصلاحه

يسرد الأمر أعلاه جميع الجداول التي تم تحديدها على أنها معطلة وتحتاج إلى إصلاح

  1. لإصلاح الجدول ، قم بتنفيذ الأمر التالي – # myisamchk -r /var/lib/mysql/dbname/table_name.MYI

تحتاج إلى تنفيذ هذا الأمر لكل جدول تم وضع علامة على أنه تعطل ويجب إصلاحه. في كل مرة تكون قيمة table_name مختلفة.

  1. الحل أعلاه سوف يحل الخطأ. إذا لم تكن بحاجة إلى إيقاف خدمة / إيقاف MySQL لإيقاف خدمة mysql stop للأوامر

بعد إيقاف خدمة الويب MySQL ، تحتاج إلى تحديث حالة الجداول بحيث يعرف MySQL CLI أن الجداول التالفة تم فحصها وإصلاحها. قم بتنفيذ الأمر الموضح أدناه لتحديث حالة الجدول.

  1. myisamchk -r –update-state /var/lib/mysql/dbname/table_name.MYI

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

  1. خدمة mysql البداية

الحل ثلاثة – طرق مختلفة لإصلاح الجداول الفاسدة

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

المرحلة الأولى – التحقق من الجداول

قم بتشغيل myisamchk * .MYI أو myisamchk -e * .MYI. يمكنك أيضًا استخدام الخيار الصامت لمنع المعلومات غير الضرورية. بناء جملة الأمر هو myisamchk -silent * .MYI

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

  • نهايه غير متوقعه للملف
  • لا يمكن العثور على الملف tbl_name.MYI (Errcode: nnn)
  • تعطل ملف السجل
  • حصلت على خطأ nnn من معالج الجدول
  • tbl_name.frm مؤمن ضد التغيير

للحصول على مزيد من المعلومات حول الخطأ ، استخدم run per nnn ، حيث nnn هو رقم الخطأ.

المرحلة الثانية – سهولة الإصلاح الآمن

بعد العثور على جداول تالفة ، تحتاج إلى تجربة الأمر

  1. استخدم myisamchk -r -q tbl_name

هنا -r -q تعني "وضع الاسترداد السريع. سيحاول هذا الأمر إصلاح ملف فهرس الجدول دون لمس ملف البيانات. إذا لم يتم إصلاح الجدول بسبب بعض الأسباب ، فقم بتنفيذ الأوامر الواردة أدناه.

  1. قم بإنشاء نسخة احتياطية من ملف البيانات قبل المتابعة
  2. استخدم myisamchk -r tbl_name. هنا -r يعني "وضع الاسترداد". يقوم الأمر بإزالة الصفوف غير الصحيحة وحذف الصفوف من ملف البيانات وإعادة تكوين ملف الفهرس. إذا فشلت هذه الخطوة ، قم بتنفيذ الأمر أدناه
  3. استخدم myisamchk –safe-recovery tbl_name. هذه طريقة استرداد قديمة تستخدم في حالات محددة حيث يفشل وضع الاسترداد العادي

نظرًا لأن وضع الاسترداد الآمن بطيء ، يلزمك التحلي بالصبر أثناء حدوث استرداد البيانات. لتسريع عملية الاسترداد ، قم بتعيين قيم key_buffer_size ومتغيرات sort_buffer_size لكل منها على حوالي 25 ٪ من الذاكرة المتاحة عند تشغيل myisamchk.

المرحلة 3 – إصلاح صعبة

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

لحل هذه الحالات ، تحتاج إلى إنشاء ملف فهرس جديد. فيما يلي الخطوات الواجب اتباعها.

  1. نقل ملف البيانات إلى مكان آمن
  2. قم بإنشاء ملف بيانات وفهرس ملف فارغ جديد باستخدام الأوامر الواردة أدناه
    • mysql db_name
    • SET autocommit = 1؛
    • TRUNCATE TABLE tbl_name؛
    • استقال
  3. انسخ ملف البيانات القديم إلى ملف البيانات المنشأ حديثًا.
  4. عد الآن إلى المرحلة الثانية وقم بتنفيذ الأوامر ويجب أن تعمل على استعادة الجداول.

ماذا تفعل إذا لم ينجح أي من هذه الحلول؟

إذا كنت غير قادر على حل الخطأ باستخدام الطرق المذكورة أعلاه ، فلا تشعر باليأس. يمكنك استخدام حل تلقائي للمشكلة. يُعد Stellar Repair for MySQL حلاً جديراً بالثقة وموثوق به لـ "تم وضع علامة على جدول MySQL على أنه عطل وفشل الإصلاح الأخير".

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

استنتاج

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