MySQL "Table is marked as crashed" ستون خراب شوی خطا اکثراً د MyISAM ذخیره موټر کاروونکي جدول کې راځي، چې دا معنی ورکوي جدول خراب شوی او MySQL نشي کولای دا په خوندي ډول ولولي. تر ټولو چټک حل دا دی چې د ډیټابیس بیک اپ اخیستو وروسته په phpMyAdmin کې مربوط جدول انتخاب کړئ او جدول ترمیم کړئ. خو دا خطا هر وخت یوازې د یو کلیک حل نه ده؛ ناڅاپي سرور شټډاون، ډیسک ډکوالی، ناسمه کوېری، زیات لیکل، یا پخوانۍ MySQL تنظیماتو له امله دا ستونزه بیا تکرارېدای شي. دا لارښود کې به تاسو د خطا اساسي علتونه، phpMyAdmin سره خوندي ترمیم مراحل، د بیک اپ چک، او د دوامدار مخنیوي طریقې په ګام په ګام پیدا کړئ.
ستاسو ویب سایټ WordPress، OpenCart، ځانګړی PHP یا فورم سافټویر کاروي؛ که MySQL جدول خراب شي، نو کاروونکي ممکن سپین صفحه، 500 خطا، اتصال وخت تېرېدل یا د اډمین پینل کې غیر متوقع ډیټابیس خطا وویني. خاصتاً که د ای-کامرس سایټ کې د سفارش، محصول، سیشن یا سبد جدولونه خراب شي، نو څو دقیقې توقف هم مالي تاوان ته لاره هواروي. له دې امله د ترمیم پروسه کې باید هم د معلوماتو ساتنه، هم د خطا اصلي علت معلوم شي. د مطمئن هاستینګ زیربنا، منظم بیک اپ، او صحیح ډیټابیس موټر انتخاب دا خطرونه کموي. دلته د مدیریت او څار لپاره Hostragons وېب هاستنګ یا د لوړو منابعو اړتیا لرونکو پروژو لپاره Hostragons VPS سرور ته کتلای شئ.
Table is marked as crashed خطا څه ده؟
Table is marked as crashed خطا دا ښيي چې MySQL سرور یو جدول خراب بللی، او د جدول لوستلو یا لیکلو کې ستونزه لري. خطا پیغام اکثراً داسې وي: Table './database/table_name' is marked as crashed and should be repaired یا Incorrect key file for table. دا د جدول فایل، انډکس یا د جدول د جوړښت خرابوالی ښيي.
دا خطا تر ټولو زیات MyISAM جدولونو کې راځي. MyISAM یو زوړ، د چټک لوستلو تمرکز لرونکی ذخیره موټر دی؛ خو د InnoDB په څېر قوي recovery نه لري. که سرور ناڅاپه بند شي، یا ډیسک لیکل نیمګړی پاتې شي، یا MySQL سمه توګه بند نشي، نو MyISAM جدولونه ژر خرابېږي. InnoDB د transaction log او crash recovery له لارې مقاومت لري؛ خو دا معنی نه لري چې InnoDB جدولونه هیڅ کله خراب نه شي. د InnoDB ستونزې معمولاً د جدول ځای، ډیسک، transaction log یا data dictionary کې څرګندیږي.
د خطا عام علتونه
که جدول خراب شي، اکثراً phpMyAdmin سره ترمیم کول کافي ښکاري؛ خو که علت ونه پیدا کړئ، دا ستونزه بیا تکرارېدای شي. لاندې موارد په عملي تجربه کې ډېر لیدل شوي:
- ناڅاپي سرور شټډاون: د برېښنا پرې کېدل، هارډویر ریست یا OS کرش کې چې MySQL جدول ته لیکل کوي، جدول خرابېږي.
- ډیسک ډکوالی: که MySQL د موقت فایل، انډکس یا جدول ته لیکل نشي کولای، نو معلومات خرابېږي. که ډیسک 90% پورته شي، خطر زیات دی.
- د MySQL سرویس زور بندول: لکه kill -9، ځانګړې کړنه چې پر لیکلو تمرکز لرونکي MyISAM جدولونه خرابوي.
- زیات لیکل/ترافیک: Log، شمارش، سیشن یا سرچ جدولونه چې MyISAM کاروي، ډیر حساس دي.
- ناسم پلاګین یا قالب: WordPress او نورو کې بد پلاګینونه زیات کوېری تولیدوي او جدولونه قفل کوي.
- هارډویر یا فایل سیسټم ستونزه: ډیسک bad sector، I/O error یا خراب فایل سیسټم ډیټابیس فایلونه اغېزمن کوي.
- پخوانۍ MySQL نسخه: زاړه نسخه کې کارکرد، قفل او recovery کمزوری دی.
د ترمیم نه مخکې مهم امنیتي ګامونه
د ډیټابیس ترمیم معمولاً خوندي دی؛ خو هر عمل چې په خراب جدول ترسره شي، د معلوماتو له لاسه ورکولو خطر کم نه کوي. په خاصه توګه live سایټ کې، لومړیتوب باید همیشه بیک اپ وي.
1. د موجود ډیټابیس بیک اپ واخلئ
له phpMyAdmin سره ترمیم نه مخکې د ډیټابیس تازه بیک اپ واخلئ. که جدول خراب هم وي، خو د لوستلو وړ معلوماتو بیک اپ مهم دی. phpMyAdmin کې ډیټابیس انتخاب کړئ، Export ته لاړ شئ، د quick پر ځای custom method انتخاب کړئ او SQL format کې بیک اپ واخلئ. د لوی ډیټابیسونو لپاره export کې timeout راتلای شي؛ دا وخت د هاستینګ کنترول پینل بیک اپ ابزار یا د SSH له لاره mysqldump غوره ده. که بیک اپ پالیسۍ نلرئ، د هاستنګ بیک اپ حللارې سرچینې مطالعه کړئ.
2. خراب جدول مشخص کړئ
خطا پیغام کې معمولاً جدول نوم وي. د WordPress سایټ کې wp_options, wp_posts, wp_comments یا wp_actionscheduler_actions جدولونه یادېږي. ځانګړي سافټویر کې جدول نوم د log، PHP error log یا MySQL error log کې لیدلای شئ. د خراب جدول مشخص کول، د ټول ډیټابیس ته غیر ضروري عمل څخه مخنیوی کوي.
3. سایټ لنډ مهالې ته maintenance حالت واخلئ
که ترمیم پر مهال جدول ته لیکنه راشي، پروسه ناکامه کېږي یا معلومات ګډوډېږي. زیات ترافیک لرونکي سایټ کې 2-5 دقیقې maintenance حالت پروسه خوندي کوي. WordPress کې د maintenance پلاګین یا custom maintenance page، یا server redirect سره کاروونکي محدود کړئ. د امنیت لپاره maintenance page کې SSL فعال کړئ؛ که د SSL سره ستونزه لرئ، د SSL سند وګورئ.
په phpMyAdmin کې MySQL جدول څنګه ترمیم کړئ؟
phpMyAdmin د تخنیکي کمانډ لاین پوهې پرته د جدول ترمیم اسانه کوي. لاندې مراحل په cPanel، Plesk او نورو هاستینګ پینلونو کې مشابه دي.
ګام 1: د هاستینګ پینل نه phpMyAdmin ته ننوتنه
د هاستینګ کنترول پینل ته لاړ شئ، د ډیټابیس برخه کې phpMyAdmin خلاص کړئ. که څو اکاونټونه یا ډومینونه لرئ، ډاډ ترلاسه کړئ چې سم حساب کې کار کوئ. غلط ډیټابیس کې عمل معمولاً مستقیم زیان نه کوي، خو وخت ضایع کوي او ممکن live سایټ نه، بل environment ترمیم کړئ. که د ډومین او هاستینګ مطابقت مغشوش دی، د ډومېن مدیریت مطالعه کړئ.
ګام 2: صحیح ډیټابیس انتخاب کړئ
د چپ مینو نه خپل سایټ اړوند ډیټابیس انتخاب کړئ. WordPress کې DB_NAME په wp-config.php کې دی. ځانګړي PHP پروژو کې معمولاً config.php، .env یا database.php کې. که په سرور کې څو سایټونه وي، دا چک خورا مهم دی.
ګام 3: خراب جدول انتخاب کړئ
ډیټابیس خلاص شي، جدولونه لیست کیږي. هغه جدول چې خطا پیغام کې دی، انتخاب کړئ. که څو جدولونه خراب وي، ټول انتخاب کړئ؛ خو له مهم جدول نه شروع کول کنټرول زیاتوي. د جدول MyISAM یا نه معلومولو لپاره row کې Type یا Engine وګورئ.
ګام 4: جدول ترمیم عمل اجرا کړئ
جدول انتخابولو وروسته، د صفحې ښکته dropdown نه Repair table انتخاب کړئ. phpMyAdmin شاته معمولاً REPAIR TABLE table_name کمانډ چلوي. پروسه ختم شي، نتیجه OK، warning یا error راځي. OK معمولاً status OK شکل کې وي. لوی جدولونه کې پروسه څو ثانیې نه، بلکې څو دقیقې کېږي؛ په دې وخت صفحه او بروزر مه بندوئ.
ګام 5: جدول وڅیړئ او سایټ تست کړئ
ترمیم ختم شي، dropdown نه Check table اجرا کړئ. بیا د سایټ main page، admin panel، search، product listing او login تست کړئ. WordPress کې admin panel کې permalinks save، cache clear او error log چک کړئ.
phpMyAdmin ترمیم انتخابونه څه معنی لري؟
phpMyAdmin کې یوازې ترمیم نه، بلکې مختلف جدول maintenance انتخابونه شته. هر انتخاب هدف لري؛ ناسم استعمال باید ونه شي.
| انتخاب | هدف یې څه دی؟ | کله استعمالیږي؟ |
|---|---|---|
| Check table | د جدول جوړښت او خطا وضعیت معاینه کوي. | ترمیم نه مخکې او وروسته د تایید لپاره. |
| Repair table | د خراب MyISAM جدول او انډکس ترمیم کوي. | Table is marked as crashed خطا پېښېدو کې لومړی خوندي عمل. |
| Optimize table | د حذف شویو ریکارډونو خالي ځایونه کموي، جدول منظم کوي. | د زیات delete/update نه وروسته کارکرد لپاره. |
| Analyze table | د کوېری پلانر لپاره انډکس statistics تازه کوي. | د کارکرد کمښت یا index misuse شک کې. |
لنډه دا چې، Table is marked as crashed ستونزه لپاره مستقیم انتخاب Repair table دی. Optimize او analyze مفید دی، خو خراب جدول یواځې ترمیم نه کوي.
په InnoDB جدولونو کې وضعه ولې بیل ده؟
phpMyAdmin کې InnoDB جدولونو لپاره Repair table همیشه متوقع ډول کار نه کوي، ځکه InnoDB د MyISAM په څېر ساده فایل ترمیم نه لري. InnoDB د transaction log، redo log، undo log او tablespace له لارې معلومات ساتي. له همدې امله، د InnoDB ستونزه حل معمولاً د MySQL service log چک، ډیسک وضعیت، بیک اپ restore یا advanced recovery modes ته اړتیا لري.
که خطا پیغام MyISAM جدول ښيي، phpMyAdmin ترمیم ډېر احتمال لري چې حل کړي. خو په InnoDB کې corrupt, tablespace, cannot open table پیغامونه ترلاسه کړئ، نو لومړی بیک اپ واخلئ او سرور log چک کړئ. د هاستینګ support نه مرسته واخلئ. خاصتاً د ای-کامرس مهم معلوماتو کې، تصادفي ترمیم نه، بلکې مسلکي مداخله غوره ده.
که ترمیم ناکام شو، څه وکړئ؟
phpMyAdmin سره ترمیم همیشه بریالی نه وي. د جدول حجم، جدي فایل خرابوالی، ډیسک ستونزه یا اجازه محدودیت پروسه نیمګړې کوي. دا وخت لاندې ګامونه تعقیب کړئ:
- بیک اپ restore: تر ټولو خوندي عمل دا دی چې تر خطا پورې تازه بیک اپ restore کړئ. وړاندې له restore، خراب ډیټابیس جدا فایل کې وساتئ.
- SSH سره myisamchk کارول: MyISAM جدولونو لپاره، که سرور ته لاسرسی لرئ، myisamchk ابزار استعمال کړئ. دا عمل باید سرور سرویس بند یا جدول ته لاسرسی قطع شي.
- REPAIR TABLE کمانډ: phpMyAdmin SQL tab کې REPAIR TABLE table_name; اجرا کړئ. لوی جدولونه کې QUICK یا EXTENDED انتخابونه وکاروئ.
- ډیسک او inode معاینه: که ډیسک یا inode ډک وي، ترمیم ناکامېږي. غیرضروري بیک اپ، log او temp فایلونه پاک کړئ.
- سرور error log معاینه: MySQL error log، web server log او PHP error log د اصلي علت معلومولو کې مهم دی.
په shared hosting کې ممکن SSH یا سرویس بندولو اجازه ونه لرئ. دا وخت support ته خطا پیغام، جدول نوم، تقریباً د پېښې وخت او وروستي بیک اپ تاریخ ورکړئ، حل چټک شي.
د خطا تکرار مخنیوی څنګه وکړئ؟
یواځې ترمیم، ستونزه عارضي حلوي؛ دایمي حل زیربنا او maintenance دیسپلین ته اړتیا لري. لاندې تدابیر MySQL جدول خرابېدو خطر کموي:
MyISAM جدولونه InnoDB ته واړوئ
په نوې ویب اپلیکیشنونو کې InnoDB معمولاً خوندي او پیاوړی دی. د row-level locking، transaction support او crash recovery له امله د زیات لیکلو ترافیک کې MyISAM ته ترجیح لري. د ALTER TABLE table_name ENGINE=InnoDB; سره تبدیل کړئ؛ خو live سایټ کې د تطبیق نه مخکې test environment کې وازمایئ، بیک اپ واخلئ. ځینې زړې سافټویرونه fulltext index یا ځانګړي MyISAM ته اړتیا لري.
منظم او restore-able بیک اپ استعمال کړئ
بیک اپ یوازې اخیستل نه، بلکې restore کول مهم دي. ورځني بیک اپونه، هفتېني full backups او مهم updates نه مخکې manual بیک اپ ښه policy ده. لږ تر لږه 7 ورځني بیک اپ ساتل د معمول سایټونو لپاره مناسب دی. ای-کامرس لپاره frequent backup یا binlog-based recovery ته اړتیا ده.
ډیسک او منابع monitoring کړئ
که ډیسک 85-90% ته ورسید، alarm ولګوه. MySQL temp tables، log files او index لپاره خالي ځای مهم دی. CPU، RAM او I/O wait time منظم چک کړئ. که سایټ همیشه resource limit ته رسي، د ډیټابیس ستونزه احتمال زیاتېږي. که ترافیک مو وده کړې، shared نه قوي پلان ته migration وکړئ؛ کارپوریټ هاستینګ یا لوړ-کارکردګۍ هاستنګ مطالعه کړئ.
پلاګین، قالب او سافټویر update چک کړئ
زړې سافټویرونه یوازې امنیتي خطر نه، بلکې ناکاره کوېری هم تولیدوي. WordPress کې غیرضروري پلاګینونه حذف کړئ، log tables پاک کړئ، او غیرمعتبر پلاګینونه مه استعمالوئ. د سافټویر update نه مخکې staging environment کې تست وکړئ، unexpected جدول یا index ستونزه مخنیوی کوي.
سرور درست بند کړئ او maintenance پلان ولرئ
که VPS یا dedicated سرور لرئ، MySQL سرویس زور بند مه کړئ. د maintenance نه مخکې سرویسونه کنټرول بند کړئ، updates د کم ترافیک ساعتونو کې وکړئ، reboot وروسته log چک کړئ. منظم maintenance، خاصتاً د زیات ترافیک ډیټابیس کې، خرابېدو خطر کموي.
WordPress سایټونو کې ځانګړې یادونې
WordPress اکثراً MySQL خطاوې د د ډیټابیس سره د اتصال په مهال خطا پیغام سره ښيي. خو error log کې خراب جدول تفصیل لیدلای شئ. WordPress کې معمولاً wp_options، wp_posts، wp_postmeta، wp_comments، او د پلاګین log یا scheduler جدولونه اغېزمن کېږي. wp_options خراب شي، site settings نه لوستل کېږي؛ wp_posts خراب شي، content نه لیست کېږي؛ پلاګین log جدولونه خراب شي، admin panel slow کېږي.
WordPress کې builtin database repair feature هم شته. wp-config.php کې define('WP_ALLOW_REPAIR', true); اضافه کړئ، بیا /wp-admin/maint/repair.php ته لاړ شئ. خو دا line تر ترمیم وروسته حتماً حذف کړئ، چې repair page unauthorized ته خلاص نشي. phpMyAdmin طریقه زیات کنټرول لري، ځکه مستقیم جدول انتخاب کوئ. WordPress ته optimize هاستینګ غواړئ، د WordPress هاستنګ وګورئ.
کله مسلکي support ته اړتیا لرئ؟
هر MySQL خطا دومره ساده نه ده چې یواځې حل شي. لاندې مواردو کې support ته مراجعه وکړئ:
- خراب جدول کې سفارش، پیسې، عضویت یا مالي معلومات وي.
- ترمیم وروسته خطا دوام لري یا جدول ورک ښکاري.
- ډیټابیس حجم څو GB وي او phpMyAdmin timeout راشي.
- InnoDB tablespace یا redo log خطاوې وي.
- ډیسک، I/O error یا فایل سیسټم warning وي.
- تازه بیک اپ نه لرئ.
د support ticket جوړولو پر مهال خطا پیغام، اغېزمن ډیټابیس او جدول نوم، د خطا شروع وخت، وروستی update یا migration، او بیک اپ تاریخ ورکړئ. دا معلومات حل ژر کوي.
لنډ عاجل چک لیست
په اضطراري حالت کې دا ترتیب تعقیب کړئ:
- د خطا پیغام نه خراب جدول نوم مشخص کړئ.
- د موجود ډیټابیس بیک اپ واخلئ.
- سایټ لنډ maintenance ته واخلئ.
- phpMyAdmin کې صحیح ډیټابیس انتخاب کړئ.
- مربوط جدول انتخاب کړئ، Repair table اجرا کړئ.
- Check table اجرا کړئ، سایټ function تست کړئ.
- ډیسک، منابع، بیک اپ او جدول موټر چک کړئ، د تکرار خطر کم کړئ.
اکثراً پوښتل شوې پوښتنې
MySQL Table is marked as crashed خطا د معلوماتو له لاسه ورکولو معنی لري؟
همیشه د معلوماتو له لاسه ورکولو معنی نه لري. زیات MyISAM جدولونه phpMyAdmin سره Repair table ترمیم کېدلی شي. خو که جدول سخت خراب وي، ځینې ریکارډونه زیانمن شوي وي. له همدې امله ترمیم نه مخکې بیک اپ واخلئ.
phpMyAdmin سره جدول ترمیم خوندي دی؟
معمولاً خوندي دی؛ خو live ډیټابیس کې هر maintenance عمل خطر لري. له عمل نه مخکې بیک اپ، صحیح جدول انتخاب، او امکان سره سایټ maintenance ته واخلئ. لوی یا مهم جدولونو کې مسلکي support غوره دی.
InnoDB جدولونو لپاره Repair table استعمال شي؟
InnoDB جدولونه د MyISAM په څېر classic REPAIR TABLE سره نه ترمیمېږي. د InnoDB ستونزه کې MySQL logs چک کړئ، ډیسک وضعیت وګورئ، بیک اپ restore کړئ. تصادفي ترمیم معلوماتو له لاسه ورکولو خطر زیاتوي.
دا خطا ولې بیا بیا تکرارېږي؟
که خطا تکرارېږي، اصلي علت حل نه دی شوی. ډیسک ډکوالی، ناڅاپي سرویس بندېدل، زیات لیکل، خراب پلاګین، زاړه MySQL نسخه یا دوامداره MyISAM استعمال عام علتونه دي. د اصلي علت معلومول دایمي حل لپاره مهم دی.
ترمیم نه مخکې باید هاستینګ ته مراجعه وکړم؟
د ساده MyISAM جدول خطا کې بیک اپ واخلئ، phpMyAdmin سره ترمیم کړئ. خو که جدول مهم معلومات ولري، بیک اپ نه لرئ، ډیټابیس ډېر لوی وي یا InnoDB خطا وي، support ته مراجعه وکړئ.
پایله
MySQL "Table is marked as crashed" خطا اکثراً په MyISAM جدولونو کې راځي، او زیات موارد کې phpMyAdmin سره حل کېدلی شي. صحیح طریقه دا ده چې لومړی بیک اپ واخلئ، خراب جدول مشخص کړئ، phpMyAdmin سره ترمیم کړئ، او بیا د خطا علت حل کړئ. منظم بیک اپ، کافي سرور منابع، InnoDB استعمال، او تازه سافټویر زیربنا دا ستونزه تکرار کموي. که دا خطا په سایټ کې دوام لري، زیربنا مو ارزونه وکړئ، اړتیا ته مناسب هاستینګ حل انتخاب کړئ، یا د Hostragons resources مطالعه کړئ، support ته مراجعه وکړئ.