Xatolarni hal qilish

MySQL "Table is marked as crashed" xatosi va phpMyAdmin orqali jadvalni tiklash

  • 11 o'qish uchun daqiqalar
  • Hostragons Jamoasi
MySQL "Table is marked as crashed" xatosi va phpMyAdmin orqali jadvalni tiklash

MySQL “Table is marked as crashed” xatosi asosan MyISAM saqlash dvigatelidan foydalanadigan jadval buzilganini va MySQL uni xavfsiz o‘qiy olmasligini bildiradi. Eng tez yechim — avval bazaning zaxirasini (backup) olib, phpMyAdmin orqali muammoli jadvalni tanlab Jadvalni tiklash funksiyasini ishga tushirishdir. Biroq bu xato har doim bitta bosish bilan hal etiladigan ogohlantirish emas: server to‘satdan o‘chishi, disk to‘lishi, noto‘g‘ri so‘rovlar, kuchli yozuv trafiki yoki eskirgan MySQL konfiguratsiyalari sababli muammo qayta-qayta yuzaga kelishi mumkin. Ushbu qo‘llanmada xatoning sabablari, phpMyAdmin orqali xavfsiz tiklash bosqichlari, oldin zaxira olish va doimiy profilaktika usullari haqida bosqichma-bosqich ma’lumot olasiz.

Saytingiz WordPress, OpenCart, maxsus PHP dasturi yoki forum bo‘lishi mumkin; MySQL jadvali buzilsa, tashrif buyuruvchilar oq ekran, 500 xato, ulanish muddati tugashi yoki admin panelda kutilmagan bazaviy xatolarni ko‘rishi mumkin. Ayniqsa, e-tijorat saytlarida buyurtma, mahsulot, sessiya yoki savat jadvallari ta’sir qilsa, bir necha daqiqalik uzilish ham daromad yo‘qotishiga olib keladi. Shuning uchun tiklash jarayonida ma’lumotni himoya qilish hamda xatoning ildiz sababini tushunish muhim. Ishonchli hosting infratuzilmasi, muntazam backup va to‘g‘ri bazaviy dvigatel tanlash bu risklarni sezilarli darajada kamaytiradi. Bu borada boshqariladigan va monitoring qilinadigan infratuzilma uchun Hostragons veb hosting yoki resurs ehtiyoji yuqori loyihalarda Hostragons VPS Server variantlarini ko‘rib chiqishingiz mumkin.

Table is marked as crashed xatosi nima?

Table is marked as crashed xatosi — MySQL server jadvalni buzilgan deb belgilaganini, o‘qish yoki yozish jarayonida muammo mavjudligini bildiradi. Xato odatda quyidagi shaklda chiqadi: Table './bazaning_nomi/jadval_nomi' is marked as crashed and should be repaired yoki Incorrect key file for table. Bu — jadval fayli, indeks yoki jadval yaxlitligida muammo borligini anglatadi.

Bu xato eng ko‘p MyISAM jadvallarida kuzatiladi. MyISAM — eski va tez o‘qish ustuvor bo‘lgan dvigatel; ammo InnoDB kabi qulay tiklash (recovery) imkoniyatiga ega emas. Server to‘satdan o‘chsa, diskga yozish tugamasa yoki MySQL servisi to‘g‘ri yopilmasa, MyISAM jadvali tez buziladi. InnoDB esa transaction log va crash recovery mexanizmlari bilan bardoshliroq; lekin bu InnoDB jadvallarida muammo bo‘lmaydi degani emas. InnoDBda muammolar asosan jadval joyi, disk, transaction log yoki meta ma’lumotlar bilan bog‘liq bo‘ladi.

Xatoning eng ko‘p uchraydigan sabablari

Jadval buzilganda phpMyAdmin orqali tiklash ko‘pincha yetarli ko‘rinadi, lekin sababini topmasangiz muammo bir necha soat yoki kun ichida takrorlanishi mumkin. Quyida amaliyotda eng ko‘p uchraydigan holatlar:

  • Serverning to‘satdan o‘chishi: Elektr uzilishi, apparat reseti yoki operatsion tizim ishdan chiqishi vaqti MySQL jadvalga yozayotgan bo‘lsa, jadval buziladi.
  • Disk to‘lishi: MySQL vaqtinchalik fayl, indeks yoki yangilashni yozolmasa, ma’lumot yaxlitligi buziladi. Disk 90% dan ko‘proq to‘lgan bo‘lsa, risk oshadi.
  • MySQL xizmatini majburiy to‘xtatish: kill -9 kabi qattiq to‘xtatishlar, ayniqsa zo‘r yozuv vaqti MyISAM jadvallarini buzadi.
  • Kuchli yozuv trafiki: Log, hisoblagich, sessiya yoki qidiruv jadvallari MyISAM bo‘lsa, ko‘proq zaiflikka ega.
  • Noto‘g‘ri plagin/tema: WordPress kabi tizimlarda yomon yozilgan plaginlar haddan tashqari so‘rov yuborib, jadval bloklanishiga olib keladi.
  • Apparat yoki fayl tizimi muammolari: Diskda bad-sector, I/O xatolar yoki fayl tizimi buzilishi bazaviy fayllarga ta’sir qiladi.
  • Eskirgan MySQL versiyasi: Yangi versiyalarda ishlash, bloklanish va tiklash mexanizmlari yaxshiroq. Eski versiyalarda bu zaif.

Tiklashdan oldin muhim xavfsizlik bosqichlari

Jadvalni tiklash asosan xavfsiz; lekin buzilgan jadvalda har qanday harakat ma’lumot yo‘qotish xavfini butunlay yo‘qotmaydi. Ayniqsa, real sayt (live)da harakat qilayotgan bo‘lsangiz, birinchi o‘rin backup olishi kerak.

1. Bazaning hozirgi zaxirasini (backup) oling

phpMyAdmin orqali tiklashdan oldin bazaning hozirgi zaxirasini eksport qiling. Jadval buzilgan bo‘lsa ham, o‘qiladigan ma’lumotlarni backup qilish muhim. phpMyAdmin ichida bazani tanlang, Export bo‘limiga kiring, imkon bo‘lsa “Custom” usulni tanlang va SQL formatida backup oling. Katta bazalarda eksport qilish timeoutga olib kelishi mumkin; bu holatda hosting panelining backup vositasi yoki SSH orqali mysqldump ishlatish yaxshiroq. Backup strategiyasi yo‘q loyihalarda Hosting zaxiralash yechimlari sahifasini ko‘rib chiqing.

2. Qaysi jadval buzilganini aniqlang

Xato xabarida odatda jadval nomi yoziladi. Masalan, WordPressda wp_options, wp_posts, wp_comments yoki wp_actionscheduler_actions jadvallari chiqishi mumkin. Maxsus dasturlarda jadval nomi loglarda, PHP xato loglarida yoki MySQL error logda ko‘rsatiladi. Jadvalni aniqlash, butun bazada keraksiz harakatlardan saqlaydi.

3. Saytni qisqa muddat texnik xizmat (maintenance) rejimiga o‘tkazing

Tiklashda jadvalga yangi yozuv keladigan bo‘lsa, jarayon muvaffaqiyatsiz bo‘lishi yoki ma’lumot notekisligi yuz berishi mumkin. Ko‘p trafikli saytlarda 2-5 daqiqalik texnik rejim tiklashni xavfsiz qiladi. WordPressda texnik rejim plagin bilan, maxsus dasturda esa vaqtinchalik texnik sahifa yoki server yo‘naltirish bilan foydalanuvchilar harakatini to‘xtatish mumkin. Texnik sahifada SSL ishlashi muhim; sertifikat masalasi bo‘yicha SSL sertifikati variantlarini ko‘rib chiqishingiz mumkin.

phpMyAdmin orqali MySQL jadvalini qanday tiklash mumkin?

phpMyAdmin, texnik buyruqlarni bilmaganlar uchun MySQL jadval tiklashni osonlashtiradi. Quyidagi bosqichlar cPanel, Plesk va ko‘p hosting panellari uchun mos.

1-bosqich: Hosting paneldan phpMyAdminga kiring

Hosting panelingizga kirib, “Databases” bo‘limida phpMyAdminga o‘ting. Bir nechta hosting hisobingiz yoki domeningiz bo‘lsa, to‘g‘ri hisobda harakat qilayotganingizga ishonch hosil qiling. Noto‘g‘ri bazada ishlash zarar qilmasa-da, vaqt yo‘qotadi va test saytni tiklashingizga olib keladi. Domen-hosting mosligi chalkash bo‘lsa, domen boshqaruvi mavzusini ko‘rib chiqing.

2-bosqich: To‘g‘ri bazani tanlang

Chap menyudan saytingiz ishlatadigan bazani tanlang. WordPressda bazaning nomini wp-config.php fayldagi DB_NAME satridan bilasiz. Maxsus PHP loyihalarda baza nomi ko‘pincha config.php, .env yoki database.php fayllarda yozilgan bo‘ladi. Bir serverda bir necha sayt bo‘lsa, bu tekshiruv juda muhim.

3-bosqich: Buzilgan jadvalni belgilash

Baza ochilganda jadvallar ro‘yxati chiqadi. Xatodagi jadvalni topib, chapidagi katakni belgilang. Bir nechta jadvalda xato bo‘lsa, hammasini tanlasangiz ham bo‘ladi; lekin birinchi eng muhim jadvalda harakat qilish ehtiyotkorlikdir. Jadval MyISAMmi yoki yo‘qligini “Type” yoki “Engine” ustunida ko‘ramiz.

4-bosqich: Jadvalni tiklash opsiyasini ishlating

Jadvalni tanlagandan so‘ng, sahifa pastida ochiladigan menyudan Jadvalni tiklash opsiyasini tanlang. phpMyAdmin fon rejimda REPAIR TABLE jadval_nomi buyruqini bajaradi. Jarayon tugagach, muvaffaqiyatli yoki ogohlantiruvchi natijalarni ko‘rasiz. Muvaffaqiyatli natija odatda status OK bo‘ladi. Katta jadvallarda tiklash bir necha daqiqa davom etishi mumkin; bu vaqtda sahifani yangilamang va browserni yopmang.

5-bosqich: Jadvalni tekshiring va saytni sinab ko‘ring

Tiklash tugagach, yana ochiladigan menyudan Jadvalni tekshirish funksiyasini ishlatishingiz mumkin. Keyin saytingiz bosh sahifasi, admin panel, qidiruv, mahsulot ro‘yxati va foydalanuvchi kirish qismlarini sinab ko‘ring. WordPressda admin panelda permalinksni saqlash, cache tozalash va xato logini ko‘rish yaxshi amaliyotdir.

phpMyAdmin tiklash opsiyalari nimani anglatadi?

phpMyAdmin ichida faqat tiklash emas, jadvalga xizmat ko‘rsatish uchun boshqa opsiyalar ham bor. Har birining maqsadi boshqacha — noto‘g‘ri kutish bilan ishlatmaslik kerak.

phpMyAdmin tiklash opsiyalari nimani anglatadi?
Opsiya Nimaga xizmat qiladi? Qachon ishlatiladi?
Jadvalni tekshirish Jadval tuzilmasi va xato holatini tekshiradi. Tiklashdan oldin va keyin verifikatsiya uchun ishlatiladi.
Jadvalni tiklash Buzilgan MyISAM jadval va indekslarni tuzatishga harakat qiladi. Table is marked as crashed xatosi chiqqanda birinchi xavfsiz harakat.
Jadvalni optimallashtirish O‘chirilgan yozuvlardan qolgan bo‘sh joylarni kamaytiradi, jadvalni tartibga soladi. Ko‘p o‘chirish/yangi yozuvdan keyin ish samaradorligi uchun ishlatiladi.
Jadvalni tahlil qilish So‘rov rejasini tuzish uchun indeks statistikalarini yangilaydi. Performance pasayishi yoki indeks noto‘g‘ri ishlayotgan bo‘lsa tanlanadi.

Xulosa qilib, Table is marked as crashed xatosi uchun to‘g‘ridan-to‘g‘ri ishlatiladigan opsiya Jadvalni tiklashdir. Optimallashtirish va tahlil — foydali texnik xizmat vositalari, lekin buzilgan jadvalni mustaqil tuzatmaydi.

InnoDB jadvallarda holat nima uchun boshqacha?

phpMyAdmin’da InnoDB jadvallari uchun Jadvalni tiklash opsiyasi har doim kutgandek ishlamaydi. Sababi — InnoDB MyISAMdagi oddiy fayl asosida tiklashga asoslanmagan. InnoDB transaction log, redo log, undo log va jadval joyi tuzilmasi bilan ma’lumot yaxlitligini himoya qiladi. Shu bois InnoDB muammolarida ko‘pincha MySQL servis loglarini ko‘rish, disk holatini tekshirish, backupdan qayta tiklash yoki ilg‘or recovery rejimlari ishlatiladi.

Agar xato xabari MyISAM jadvalga tegishli bo‘lsa, phpMyAdmin orqali tiklash ko‘pincha samarali. Lekin InnoDBda corrupt, tablespace, cannot open table kabi xabarlar chiqsa, tiklashdan oldin backup oling va server logini o‘rganing. Bunday holatda hosting provayderingizdan yordam so‘rash xavfsizroq. Ayniqsa, e-tijoratda muhim ma’lumotlar bo‘lsa, o‘zboshimchalik bilan harakat qilishdan ko‘ra mutaxassisga murojaat qilish ma’qul.

Tiklash muvaffaqiyatsiz bo‘lsa nima qilish kerak?

phpMyAdmin orqali jadval tiklash har doim muvaffaqiyatli bo‘lmaydi. Katta jadval, jiddiy fayl buzilishi, disk muammosi yoki ruxsat cheklovi sababli jarayon to‘xtashi mumkin. Bunday vaziyatda quyidagi harakatlar qilinadi:

  • Backupdan qayta tiklash: Eng xavfsiz usul — xato bo‘lmagan eng yaqin backupni tiklash. Qayta tiklashdan oldin hozirgi buzilgan bazani alohida fayl sifatida saqlang.
  • SSH orqali myisamchk ishlatish: MyISAM jadvallari uchun serverga kirish imkoningiz bo‘lsa, myisamchk vositasini ishlatishingiz mumkin. Bu jarayon MySQL xizmatini to‘xtatish yoki jadvalga kirishni to‘sish bilan amalga oshiriladi.
  • REPAIR TABLE buyruqini ishlatish: phpMyAdmin’da SQL bo‘limidan REPAIR TABLE jadval_nomi; buyruqni bajaring. Katta jadvallar uchun QUICK yoki EXTENDED variantlari ham bor.
  • Disk va inode holatini tekshirish: Disk yoki inode to‘lsa, tiklash muvaffaqiyatsiz bo‘ladi. Avval keraksiz backup, log va vaqtinchalik fayllarni tozalang.
  • Server xato loglarini ko‘rish: MySQL error log, web server log va PHP error log muammoning ildizini aniqlashda muhim.

Agar shared hosting ishlatadigan bo‘lsangiz, SSH yoki servisni to‘xtatish huquqingiz bo‘lmasligi mumkin. Bu holatda xato xabari, jadval nomi, taxminiy paydo bo‘lgan vaqti va oxirgi backup tarixini supportga yuborish hal qilishni tezlashtiradi.

Xato qayta takrorlanishini qanday oldini olish mumkin?

Bir martalik tiklash muammoni vaqtincha yo‘qotadi; doimiy yechim — infratuzilma va texnik xizmat intizomi. Quyidagi profilaktika choralari MySQL jadval buzilish riskini sezilarli pasaytiradi.

MyISAM jadvallarini InnoDBga o‘tkazishni ko‘rib chiqing

Zamonaviy web dasturlarda InnoDB ko‘proq xavfsiz va bardoshli variant. Satr darajasida bloklash, transaction va crash recovery imkoniyatlari bilan MyISAMdan ustun. O‘zgartirish ALTER TABLE jadval_nomi ENGINE=InnoDB; buyruq bilan amalga oshiriladi; lekin live saytda avval test muhitida sinab ko‘ring va to‘liq backup oling. Ba’zi eski dasturlar fulltext indeks yoki MyISAMga xos xususiyatlarga bog‘liq bo‘lishi mumkin.

Muntazam va tiklanadigan backup tizimini yo‘lga qo‘ying

Backup faqat olish bilan emas, tiklanish imkoniyati bilan foydali. Har kuni backup, har hafta to‘liq backup va har bir muhim yangilanishdan oldin qo‘lda backup olish yaxshi strategiya. Kamida 7 kunlik backup saqlash — ko‘p kichik va o‘rta saytlar uchun o‘rtacha bosqich. E-tijoratda buyurtma yo‘qotishini kamaytirish uchun ko‘proq backup yoki binlog tiklash kerak bo‘lishi mumkin.

Disk va resurslarni monitoring qiling

Disk 85-90% to‘lganida ogohlantirish olish kerak. MySQL vaqtinchalik jadval, log va indeks uchun bo‘sh joy zarur. Shuningdek, CPU, RAM va I/O kutish vaqtini muntazam monitoring qilish ma’qul. Doimiy resurs yetishmovchilik saytda bazaviy xatolarni ko‘paytiradi. Trafik oshgan bo‘lsa, shareddan kuchli paketga o‘tish mantiqli; bu borada Korporativ Hosting yoki Yuqqori ishlashga ega hosting sahifalarini ko‘rib chiqing.

Plagin, tema va dastur yangilanishlarini nazorat qiling

Eski dasturlar nafaqat xavfsizlik, balki bazaga samarasiz so‘rov yuboradi. WordPressda texnik xizmat vaqtida ishlamaydigan plaginlarni olib tashlang, bazani shishiruvchi log jadvallarini tozalang va ishonchsiz plaginlardan saqlaning. Yangilanishdan oldin staging muhitida test qilish live saytda kutilmagan jadval yoki indeks muammolarini oldini oladi.

Serverni to‘g‘ri o‘chiring va texnik xizmat rejasini tuzing

VPS yoki dedicated server boshqarayotgan bo‘lsangiz, MySQL xizmatini majburan to‘xtatmang. Texnik xizmatdan oldin servislarni sekin to‘xtatish, yangilanishni past trafikda qilish va rebootdan so‘ng loglarni ko‘rish muhim. Rejali texnik xizmat — ayniqsa ko‘p trafikli bazalarda buzilish riskini kamaytiradi.

WordPress saytlarda maxsus tavsiyalar

WordPress MySQL xatolarini ko‘pincha umumiy veritabanı bağlantısı kurulurken hata oluştu xabari bilan ko‘rsatadi. Lekin xato logini ko‘rsa, buzilgan jadval tafsilotlari chiqadi. WordPressda ko‘p ta’sir qiladigan jadvallar: wp_options, wp_posts, wp_postmeta, wp_comments va ba’zi plaginlar yaratgan log yoki timer jadvallari. wp_options buzilsa, sayt sozlamalari o‘qilmaydi; wp_posts buzilsa, kontent ro‘yxati chiqmaydi; plagin log jadvallari buzilsa, admin panel sekinlashadi.

WordPressda o‘zining built-in bazaviy tiklash funksiyasi ham bor. wp-config.php faylga vaqtinchalik define('WP_ALLOW_REPAIR', true); satrini qo‘shib, /wp-admin/maint/repair.php manzilidan tiklashni ishga tushirish mumkin. Tiklash tugagach, bu satrni albatta olib tashlang — aks holda tiklash sahifasi ruxsatsiz kirishga ochiq qoladi. phpMyAdmin usuli ko‘proq nazoratli: qaysi jadvalga tiklash qilayotganingizni aniq ko‘rasiz. WordPress uchun optimallashtirilgan hosting infratuzilmasi izlayotgan bo‘lsangiz, WordPress hosting sahifasini ko‘rib chiqing.

Qachon mutaxassisdan yordam olish kerak?

Har bir MySQL xatosi mustaqil hal qilinadigan darajada oddiy emas. Quyidagi holatlarda mutaxassisdan yordam olish xavfsiz:

  • Buzilgan jadvalda buyurtma, to‘lov, a’zolik yoki moliyaviy ma’lumot bo‘lsa
  • Tiklashdan so‘ng xato davom etsa yoki jadval yo‘qolgandek ko‘rinsa
  • Baza hajmi bir necha gigabaytdan ko‘p va phpMyAdmin timeoutga tushsa
  • InnoDB tablespace yoki redo log xatolari chiqsa
  • Disk xato, I/O error yoki fayl tizimi ogohlantirishlari bo‘lsa
  • Yaqin backup yo‘q bo‘lsa

Yordam so‘rayotganda xato xabarining to‘liq matni, ta’sirlangan baza va jadval nomi, xatoning boshlangan vaqti, oxirgi yangilanish yoki ko‘chirish jarayoni va backup tarixi haqida ma’lumot bering. Bu ma’lumotlar muammoni tezroq hal qilishga yordam beradi.

Qisqa nazorat ro‘yxati

Agar tez harakat qilish kerak bo‘lsa, quyidagi tartibda ish tuting:

  • Xato xabaridan buzilgan jadval nomini aniqlang
  • Bazaning hozirgi backupini oling
  • Saytni qisqa muddat texnik rejimga o‘tkazing
  • phpMyAdmin’da to‘g‘ri bazani tanlang
  • Muammoli jadvalni belgilab, Jadvalni tiklash funksiyasini bajaring
  • Jadvalni tekshirib, sayt funksiya va ishini sinab ko‘ring
  • Disk, resurs, backup va jadval dvigatelini tekshirib, xatoning qayta chiqish riskini kamaytiring

Ko‘p so‘raladigan savollar

MySQL Table is marked as crashed xatosi ma’lumot yo‘qotish deganimi?

Har doim emas. Ko‘p MyISAM jadvallari phpMyAdmin orqali Jadvalni tiklash bilan tuzatiladi. Lekin jadval jiddiy buzilgan bo‘lsa, ba’zi yozuvlar yo‘qolgan bo‘lishi mumkin. Shuning uchun tiklashdan oldin bazaning backupini olish muhim.

phpMyAdmin orqali jadval tiklash xavfsizmi?

Asosan xavfsiz; lekin real bazada har qanday texnik xizmatda risk bor. Harakatdan oldin backup oling, to‘g‘ri jadvalni tanlang va imkon bo‘lsa saytni texnik rejimga olib chiqing. Katta yoki muhim jadvallarda mutaxassisdan yordam so‘rash ma’qul.

InnoDB jadvallari uchun Jadvalni tiklash ishlatish kerakmi?

InnoDB jadvallari MyISAMdagi REPAIR TABLE logikasi bilan tiklanmaydi. InnoDB muammolarida MySQL logini o‘rganish, disk holatini tekshirish va backupdan qayta tiklash to‘g‘riroq. O‘zboshimchalik bilan tiklash ma’lumot yo‘qotish xavfini oshiradi.

Bu xato nega doim takrorlanadi?

Xato takrorlansa, ildiz sabab hal qilinmagan bo‘lishi mumkin. Disk to‘lishi, server to‘satdan o‘chishi, kuchli yozuv trafiki, buzilgan plaginlar, eskirgan MySQL yoki MyISAMdan foydalanish eng ko‘p sabablar. Asosiy sababni aniqlash — doimiy yechim uchun zarur.

Tiklashdan oldin hosting kompaniyamga murojaat qilaymi?

Oddiy MyISAM jadval xatolarida backup olib, phpMyAdmin orqali tiklash mumkin. Lekin jadvalda muhim ma’lumot bo‘lsa, backup yo‘q bo‘lsa, baza juda katta bo‘lsa yoki InnoDB xatolari chiqsa hosting supportiga murojaat qilish xavfsizroq.

Xulosa

MySQL “Table is marked as crashed” xatosi — asosan MyISAM jadvallarida uchraydigan va ko‘p hollarda phpMyAdmin orqali hal bo‘ladigan bazaviy buzilish xabari. To‘g‘ri yondashuv: avval backup olish, buzilgan jadvalni aniqlash, phpMyAdminda tiklash va keyin xatoning sababini yo‘qotishdir. Muntazam backup, yetarli server resurslari, InnoDB’dan foydalanish va zamonaviy dastur infratuzilmasi bu muammoning qayta chiqish ehtimolini kamaytiradi. Agar saytingizda shunday xatolar tez-tez yuz bersa, infratuzilmani yaxshilab ko‘rib chiqing va ehtiyojingizga mos hosting yechimini tanlash uchun Hostragons resurslarini o‘rganing yoki supportdan maslahat oling.

Ushbu maqolani ulashing:

Hostragons Jamoasi

Xosting, serverlar va domen nomlari bo'yicha mutaxassislar jamoamizdan eng so'nggi qo'llanmalar. Keling, loyihangiz uchun to'g'ri yechimni birgalikda topamiz.

Biz bilan Bog'laning