মাইএসকিউএল টেবিলটি ক্র্যাশ হিসাবে চিহ্নিত হয়েছে এবং সর্বশেষ (স্বয়ংক্রিয়?) মেরামতের ব্যর্থ হয়েছে


126

আমি হঠাৎ সার্ভারটি ঝুলিয়ে দেওয়া এই টেবিলটি মেরামত করছিলাম এবং যখন আমি ফিরে আসলাম তখন সমস্ত টেবিল ঠিক আছে তবে এইটি 'ব্যবহারে' দেখায় এবং যখন আমি মেরামতের চেষ্টা করি তখন এটি অগ্রসর হয় না।

ERROR 144 - টেবিল './extas_d47727/xzclf_ads' ক্র্যাশ হয়েছে হিসাবে চিহ্নিত হয়েছে এবং শেষ (স্বয়ংক্রিয়?) মেরামতের ব্যর্থ হয়েছে

আমি এটি মেরামত করতে কী করতে পারি?


1
অন্তর্নিহিত ফাইল সিস্টেমটি ফ্রি ইনোডের বাইরে চলে যাওয়ার সময়ে আমি এটি বেশিরভাগ ক্ষেত্রেই দেখেছি। ডিএফ-সহ চেক করুন সাধারণত কোনও কিছু এটিকে ছোট ফাইলগুলি যেমন: পিএইচপি সেশন ফাইলগুলি পরিষ্কার হয় না এর সাথে পূরণ করে।
Zrin

উত্তর:


260

যদি আপনার মাইএসকিউএল প্রক্রিয়া চলমান থাকে তবে এটি বন্ধ করুন। দেবিয়ান:

sudo service mysql stop

আপনার ডেটা ফোল্ডারে যান। দেবিয়ান:

cd /var/lib/mysql/$DATABASE_NAME

চালানোর চেষ্টা করুন:

myisamchk -r $TABLE_NAME

যদি এটি কাজ না করে, আপনি চেষ্টা করতে পারেন:

myisamchk -r -v -f $TABLE_NAME

আপনি আবার আপনার মাইএসকিউএল সার্ভার শুরু করতে পারেন। দেবিয়ান:

sudo service mysql start

3
আমি উপরের কমান্ডটি দিয়ে চেষ্টা করেছি আমি এই ত্রুটিটি পেয়েছি নতুন টেম্পাইল তৈরি করতে পারি না: 'xzclf_ads.TMD'
ক্রিপ্টোমিনিংপুলসেটআপওয়াইমিম

2
আচ্ছা, ডিস্ক কি আসলেই পূর্ণ? আপনি কি "ডিএফ-এইচ" চালানোর চেষ্টা করতে পারেন? সম্ভবত এটি হ'ল এবং আপনার কিছু জায়গা খালি করা উচিত ... টেবিল মেরামতের সময় এটি অস্থায়ী টেবিলটিতে লেখার জন্য কিছু ডিস্ক স্পেস ব্যবহার করে। আপনি যেমন ত্রুটি বার্তাটি দেখতে পাচ্ছেন এটি আপনার /
টিএমপি

13
আমাকে নেভিগেট করে /var/lib/mysql/<database>চালাতে হয়েছিল myisamchk -r -v -f ./<table name>
লিনাস অ্যালিয়ান্ডার

5
আমি একটি myisam_sort_buffer_size is too smallত্রুটি পেয়েছি , সুতরাং এই আদেশটি আমার পক্ষে কাজ করেছে:myisamchk -r -v --sort_buffer_size=2G <table_name>
দুসান

1
বাহ, আমি ভেবেছিলাম আমার পুরো ওয়েবসাইটটি হোস হয়েছে। এ জাতীয় সহজ সমাধান। আপনি আমার নায়ক!
অ্যান্টনি

105

নিম্নলিখিত কোয়েরি চালানোর চেষ্টা করুন:

repair table <table_name>;

আমার একই সমস্যা ছিল এবং এটি আমার সমস্যার সমাধান করেছে।


এটি ছিল দ্রুত সমাধান! একটি "খারাপ" বিকল্পের টেবিল ছিল। আপনি প্রথমে সঠিক ডাটাবেসটি নির্বাচন করেছেন তা নিশ্চিত করুন!
jyllstuart

12

যদি এটি / var / lib / mysql এ যাওয়ার সময় আপনাকে অনুমতি অস্বীকার দেয় তবে নিম্নলিখিত সমাধানটি ব্যবহার করুন

$ cd /var/lib/
$ sudo -u mysql myisamchk -r -v -f mysql/<DB_NAME>/<TABLE_NAME>

4

কাজটি করার জন্য আমার মেরামতের বিবরণীতে USE_FRM যুক্ত করা দরকার।

REPAIR TABLE <table_name> USE_FRM;

3

আমি myisamchk: error: myisam_sort_buffer_size is too smallত্রুটি হিসাবে পেয়েছিলাম ।

সমাধান

myisamchk -r -v mysql/<DB_NAME>/<TABLE_NAME> --sort_buffer_size=2G

2

যান data_dirএবং অপসারণ Your_table.TMPমেরামত পরে ফাইল <Your_table>টেবিল।


কোথায় আছে data_dir?
সিএমসিডিগ্রাগনকাই

1
এই আদেশ দিয়ে এটি অনুসন্ধান করুন grep -r datadir /etc/mysql//var/lib/mysqlডিবিয়ান এবং উবুন্টুর অধীনে হওয়া উচিত ।
ThorstenS

1

এটি একটি 100% সমাধান। আমি নিজে চেষ্টা করেছিলাম।

myisamchk -r -v -f --sort_buffer_size = 128M --key_buffer_size = 128M / var / lib / mysql / databasename / tabloname


0

আমি বিদ্যমান উত্তরের বিকল্পগুলি চেষ্টা করেছিলাম, প্রধানত একটিকে সঠিক হিসাবে চিহ্নিত করা হয়েছে যা আমার দৃশ্যে কাজ করে নি। যাইহোক, কাজটি কি phpMyAdmin ব্যবহার করছিল। ডাটাবেস নির্বাচন করুন এবং তারপরে টেবিলটি নির্বাচন করুন, নীচের ড্রপ ডাউন মেনু থেকে "মেরামত টেবিল" নির্বাচন করুন।

  • সার্ভারের ধরণ: মাইএসকিউএল
  • সার্ভার সংস্করণ: 5.7.23 - মাইএসকিউএল কমিউনিটি সার্ভার (জিপিএল)
  • phpMyAdmin: সংস্করণ তথ্য: 4.7.7
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.