অজানা / অসমর্থিত স্টোরেজ ইঞ্জিন: ইনোডিবি | মাইএসকিউএল উবুন্টু


45

আমি সম্প্রতি পূর্ববর্তী এলটিএস উবুন্টু থেকে যথাযথে আপগ্রেড করেছি এবং এখন মাইএসকিএল শুরু করতে অস্বীকার করেছে। আমি এটি শুরু করার চেষ্টা করার সময় এটি নিম্নলিখিতগুলির অভিযোগ করে:

╰$ sudo service mysql restart
stop: Unknown instance:
start: Job failed to start

এবং এটি "/var/log/mysql/error.log" এ দেখায়:

120415 23:01:09 [Note] Plugin 'InnoDB' is disabled.
120415 23:01:09 [Note] Plugin 'FEDERATED' is disabled.
120415 23:01:09 [ERROR] Unknown/unsupported storage engine: InnoDB
120415 23:01:09 [ERROR] Aborting

120415 23:01:09 [Note] /usr/sbin/mysqld: Shutdown complete

এর সমস্ত মালিকানা রয়েছে কিনা তা নিশ্চিত করার জন্য আমি সমস্ত মাইএসকিএল ডিরেক্টরিতে অনুমতি পরীক্ষা করেছি এবং আমি প্রিভিউ ইব_লগের নামকরণও করেছি যাতে এটি পুনরায় তৈরি করতে পারে। গুগল ফলাফলগুলি ২ ঘন্টা দেখার পরে, আমি এখনই এই সমস্যাটি দিয়ে নেই।


ঘটনাচক্রে, আমি মাই সিএনএফ-তে "skip_innodb" এন্ট্রি মন্তব্য করে চালানোর জন্য মাইএসকিএল পেয়েছি। তবে আমি মোটামুটি নিশ্চিত যে আমার এইভাবে সমাধান করার কথা ছিল না।
গ্যারেট

অনুগ্রহ করে মাই সিএনএফ থেকে সমস্ত ভেরিয়েবলগুলি ইনডোডাব সেটিংসে প্রদর্শন করুন
RolandoMySQLDBA

উত্তর:


34

লগগুলি পরীক্ষা করার পরে আমি নিম্নলিখিত ত্রুটিটি পেয়েছি:

[ERROR] Unknown/unsupported storage engine: InnoDB

আমি এই ফাইলগুলি সরিয়েছি:

rm /var/lib/mysql/ib_logfile0
rm /var/lib/mysql/ib_logfile1 

/var/lib/mysql

এটি পুনরায় আরম্ভের পরে আমার সমস্যার সমাধান করেছে।


7
rmকমান্ড তাদের ফাইলগুলো পুনরায় নামকরণ বদলে যতদূর সরান হিসেবে আমি জানি ব্যবহৃত হয় ...
Itai Ganot

2
এই ফাইলগুলিতে আপনার ডাটাবেসের আসল ডেটা রয়েছে । আপনি এগুলি মুছতে চান না।
স্টেফান লাসিউইস্কি

না, ibdataফাইলটিতে ডেটা রয়েছে (আপনার প্রতি-সারণীতে ফাইল না থাকলে)। Ib_logfile ফাইল হ'ল রিপ্লে লগ যা ডাটাবেস-পরিবর্তনকারী লেনদেনের জন্য ডেটা ধারণ করে যা ডাটাবেস ক্র্যাশ হওয়ার সময় / যদি প্রক্রিয়াধীন হতে পারে। আপনি যদি সার্ভারটি সফলভাবে বন্ধ করতে সক্ষম হন তবে এই লগ ফাইলগুলি মোছা আপনার ক্ষতি করবে না। যদি এটি ক্র্যাশ হয়ে যায় তবে আপনার সেগুলি দরকার। তবে এটি একটি কার্যকর উত্তর। যদি আপনার মাই সিএনএফ ফাইলটি ইনোডব_লগ_ফায়াল_সাইজ বিকল্পটি পরিবর্তন করে এবং এটি আর এই দুটি ফাইলের সাথে মেলে না, আপনি ওপির বিবরণে ত্রুটি বার্তা পাবেন। মুছে ফেলা / মুভিং করা যাতে নতুনকে এটি ঠিক করা যায়।
সাফাদো

2
কেন সম্পাদনাগুলি কেবলমাত্র 5 মিনিটের জন্য করা যেতে পারে তা আমার বাইরে ... আমার উচিত ছিল এটি উল্লিখিত ত্রুটির সম্ভাব্য সমাধান fix ওপির বক্তব্য অনুসারে, এটি তাঁর প্রয়োজন ঠিক করা হয়নি।
সাফাদো

1
আপনি সর্বদা তাদের নাম পরিবর্তন করতে পারেন, যেমন mv ib_logfile0 ib_logfile0.bak && mv ib_logfile1 ib_logfile1.bak
কেনোরব

23

আপনার যদি সত্যিই প্রয়োজন হয় skip-innodb(ব্যবহারের ক্ষেত্রে: কম মেমরির পদচিহ্ন), তবে অবশ্যই আপনাকে এটির মন্তব্য করতে হবে না। তবে InnoDB যদি ডিফল্ট স্টোরেজ ইঞ্জিন হয় তবে পরিবর্তে কোন স্টোরেজ ইঞ্জিন ব্যবহার করা উচিত তা না বলা পর্যন্ত সার্ভারটি শুরু করতে ব্যর্থ হবে, যেমন default-storage-engine=myisamমাইএসএএম এর জন্য for

সুতরাং, এটি চেষ্টা করুন:

$ sudo -u mysql mysqld --skip-innodb --default-storage-engine=myisam

6
আপনি যদি "skip_innodb" রাখতে চান তবে [mysqld] বিভাগে /etc/mysql/my.cnf এ "ডিফল্ট-স্টোরেজ-ইঞ্জিন = মাইসাম" যুক্ত করার চেষ্টা করুন ।
পিনকড

সুন্দর কাজ করে। চিয়ার্স!
বোয়ান

4
আপনি যদি ইন্নাডব-সমর্থন চান?
নীলজর

1
Centos 7 default-storage-engine=myisamএ মারিয়াডবি ফাইল /etc/my.cnf এর অধীনে যুক্ত হয়েছে [mysqld]। কৌতুকটি করেছে। ধন্যবা
দামোদর Bashyal

12

আপনি যদি মাইএসকিউএল 5.6+ ব্যবহার করছেন এবং ইনোডিবি অক্ষম করতে চান তবে " --default-tmp-store " ভুলে যাবেন না বা এটি কাজ করবে না:

InnoDB অক্ষম করতে, --innodb = অফ বা --স্কিপ-ইনডোডব ব্যবহার করুন। এই ক্ষেত্রে, কারণ ডিফল্ট স্টোরেজ ইঞ্জিনটি ইনোডিবি, আপনি স্থায়ী এবং উভয়র জন্য ডিফল্টকে অন্য কোনও ইঞ্জিনে ডিফল্ট সেট করতে --default-store-engines এবং --default-tmp-storage-ইঞ্জিন ব্যবহার না করলেই সার্ভার আরম্ভ হবে না unless অস্থায়ী সারণী।

http://dev.mysql.com/doc/refman/5.6/en/innodb-parameters.html#option_mysqld_ignore-builtin-innodb

আপনি এটি আপনার মাই সিএনএফ এ যুক্ত করতে পারেন:

[mysqld] 
innodb=OFF 
ignore-builtin-innodb 
skip-innodb
default-storage-engine=myisam 
default-tmp-storage-engine=myisam

এটি কাজ করবে তা নিশ্চিত করার জন্য।


+1, অফিসিয়াল ডকুমেন্টটি কখনই লক্ষ্য করবেন না। এটি সেট করা উচিত default-storage-engineএবং default-tmp-storage-engine, ধন্যবাদ।
গিবার্নো

7

আপনার mysql ত্রুটি লগ পরীক্ষা করুন।

tail -100 /var/log/mysql/error.log

যদি আপনার লগটি বলে (আমার মতো করেছে):

ইনোডিবি: বাফার পুল, আকার = 128.0 এম শুরু করা হচ্ছে
InnoDB: এমএম্যাপ (137363456 বাইট) ব্যর্থ হয়েছে; ভুল 12
[ত্রুটি] InnoDB: বাফার পুলের জন্য মেমরি বরাদ্দ করতে পারে না

আপনার 128 এম এর ডিফল্ট বাফার আকারটি ব্যবহার করার মতো পর্যাপ্ত মেমরি নেই

একটি ছোট ইনডোড_ফার_পুল_সাইজ নির্দিষ্ট করতে একটি লাইন যুক্ত করে /etc/mysql/my.cnf কনফিগার ফাইলটি সম্পাদনা করুন ।

# make the buffer pool smaller than 128M since we only have 1 GB of total RAM
innodb_buffer_pool_size = 16M

কনফিগারেশন ফাইলটি সংরক্ষণ করুন এবং মাইএসকিএল শুরু করুন

sudo service mysql start

এখানে স্পট। তবে ওয়েবসার্ভারের ঝুলন্ত প্রক্রিয়া বা র‌্যাম খেয়ে থাকা কিছু হতে পারে, এটিও পরীক্ষা করে দেখুন।
sjas

0

আরও 2 টি জিনিস চেষ্টা করুন। 1. ইনানোডব বাফার পুলের আকারটি কম করুন। ২. মাইএসকিএল প্রাথমিক স্ক্রিপ্ট সম্পাদনা করুন এবং --innodb বিকল্প যুক্ত করুন।

আপনার প্যাকেজটি বগী থাকলে আমিও অবাক হয়েছি। আপনি কি অন্য একটি ছোটখাটো সংস্করণ চেষ্টা করতে পারেন?

এছাড়াও, আমি ধরে নিই যে আপনার মাইএসকিএল সার্ভারটিও আপগ্রেড হয়েছে? সেই সংস্করণটি কি ভেঙে গেছে? নির্ভুলতা এখনও চূড়ান্ত নয়।


ইতিমধ্যে তা কার্যকর হয়েছে।
গ্যারেট

দুঃখিত, আরও খারাপ প্যাকেজের মতো চেষ্টা করার জন্য কিছু জিনিস দিয়ে এটি সম্পাদনা করেছেন। Mysql.com সংস্করণ বা পারকোনা ব্যবহার করার চেষ্টা করুন যা সাধারণত আরও স্থিতিশীল থাকে।
johnshen64

পুরানো প্যাকেজটি সম্পূর্ণভাবে মুছে গেছে কিনা তা নিশ্চিত করুন, নতুন ইনস্টল হওয়ার পরে।
johnshen64

প্যাকেজটি পুরোপুরি মুছে ফেলা কি পুরো ডাটাবেসের তথ্য হারিয়ে ফেলবে?
গ্যারেট

উচিত নয়, তবে নিরাপদ থাকার জন্য আপনার ডিবিএসকে সর্বদা ব্যাকআপ করা উচিত।
johnshen64

0

আমি যে ত্রুটিটি ব্যবহার করি সেটি মুছে ফেলার সময় আমি এই ত্রুটিটি পেয়েছি tmpdir। আপনি যদি সম্প্রতি নিজের পরিবর্তন করেছেন তবে আপনি tmpdirএটি একটি বৈধ, লেখার যোগ্য অবস্থান যাচাই করতে চাইতে পারেন।

আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.