মাইএসকিউএল ক্রাশ করে চলেছে: ইনোডিবি:। / বিডেটা 1 লক করতে অক্ষম, ত্রুটি: 11


43

আমার একটি সাধারণ ওয়েবসার্ভার রয়েছে (ডেবিয়ান 6.0 এক্স 86, ডাইরেক্টএডমিন 1 গিগাবাইট মেমরি এবং এখনও 10 জিবি ফ্রি স্পেস, মাইএসকিউএল সংস্করণ 5.5.9) তবে মাইএসকিউএল সার্ভার ক্র্যাশ করে চলেছে এবং এটি পুনরায় আরম্ভ করতে সক্ষম হওয়ার জন্য আমার সমস্ত মাইএসকিউএল প্রক্রিয়া মেরে ফেলতে হবে আবার।

/var/log/mysql-error.log আউটপুট:

130210 21:04:26 InnoDB: Using Linux native AIO
130210 21:04:34 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:05:42 InnoDB: Completed initialization of buffer pool
130210 21:05:48 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:06:22 InnoDB: Initializing buffer pool, size = 128.0M
130210 21:06:27 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:06:29 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:07:22 InnoDB: Completed initialization of buffer pool
130210 21:07:51 mysqld_safe mysqld from pid file /usr/local/mysql/data/website.pid ended
130210 21:08:33 InnoDB: Completed initialization of buffer pool
130210 21:12:03 [Note] Plugin 'FEDERATED' is disabled.
130210 21:12:47 InnoDB: The InnoDB memory heap is disabled
130210 21:12:47 InnoDB: Mutexes and rw_locks use InnoDB's own implementation
130210 21:12:47 InnoDB: Compressed tables use zlib 1.2.3
130210 21:12:47 InnoDB: Using Linux native AIO
130210 21:13:11 InnoDB: highest supported file format is Barracuda.
130210 21:13:23 InnoDB: Initializing buffer pool, size = 128.0M
InnoDB: The log sequence number in ibdata files does not match
InnoDB: the log sequence number in the ib_logfiles!
130210 21:14:05  InnoDB: Database was not shut down normally!
InnoDB: Starting crash recovery.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
InnoDB: Unable to lock ./ibdata1, error: 11
InnoDB: Check that you do not already have another mysqld process
InnoDB: using the same InnoDB data or log files.
130210 21:17:53  InnoDB: Unable to open the first data file
InnoDB: Error in opening ./ibdata1
130210 21:17:53  InnoDB: Operating system error number 11 in a file operation.

আমি এখানে মাইএসকিউএল ওয়েবসাইটে একটি বিষয় পেয়েছি তবে এর কোনও সমাধান নেই।

কোন ধারণা কেউ?


এবং এটি মাইএসকিউএল এর কোন সংস্করণ?
মাইকেল হ্যাম্পটন

আমি বুঝতে পারি না - লগ ফাইলের এই অংশটি মাইএসকিউএল নিয়ে সমস্যা সম্পর্কে জানায় ত্রুটির কারণ সম্পর্কে নয়। সমস্যাটির উত্স সরিয়ে দেওয়া সবচেয়ে ভাল কাজ।
ক্রিজিসটফ ক্সিয়ায়েক

@ মিশেলহ্যাম্পটন পোস্টটি সম্পাদনা করা হয়েছে (মাইএসকিউএল সংস্করণ 5.5.9 এবং লগটি বাড়িয়েছে)।
ডেভিয়েটার

1
আপনি কি পরীক্ষা করে দেখেছেন যে এটি চালানোর আগে কোনও চলমান মাইএসকিএলড নেই? কিভাবে?
11:51

উত্তর:


32

একই ব্লগে একটি মন্তব্য থেকে অন্য পদ্ধতির:

এটি আমাকে সাহায্য করেছে:

lsof -i: 3306

তারপরে এটি হত্যা করুন (প্রক্রিয়া নম্বর)

হত্যা -9 প্রসেস

যেমন মেরুন -9 13498

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

http://www.webhostingtalk.com/archive/index.php/t-1070293.html এর মাধ্যমে


1
service mysql restartইতিমধ্যে কোনও চলমান প্রক্রিয়া দেখানো হয়নি, তবে lsofএটি খুঁজে পেয়েছে। এটি হত্যা করেছে, service mysql startএবং এখন প্রক্রিয়া ব্যর্থ ইমেলের বন্যা থামতে পারে। অনেক ধন্যবাদ.
ডয়েল লুইস

28

উবুন্টু 14.04 এর সাথে। আমি যখন আবার চালু করার চেষ্টা করি তখন আমি এই সমস্যাটি অনুভব করছি

/etc/init.d/mysql restart

পরিবর্তে চেষ্টা করুন

service mysql restart 

1
ধন্যবাদ, এটি সাহায্য করেছে। কিন্তু কেন?
খুব


@ টু, যদি আপনার কাজের জন্য একটি পুরানো স্টাইলের init.d স্ক্রিপ্ট এবং একটি আপস্টার্ট কনফিগারেশন উভয়ই থাকে তবে আপনাকে ব্যবহার করতে হবে service job start, অন্যথায় আপনি যদি এটি init.d স্ক্রিপ্ট দিয়ে শুরু করেন তবে আপস্টার্ট এটি সম্পর্কে জানতে পারবেন না এবং এটি চেষ্টা করতে পারে অন্য উদাহরণ বুট করতে। (অন্তত মাইএসকিউএল এর ডিফল্ট init স্ক্রিপ্টগুলির ক্ষেত্রে
এটিই

@ ওয়্যারম্যান: এটি ব্যাখ্যা করে যে নট (ডিএনএস সার্ভার) সহ অন্যান্য প্যাকেজগুলির মধ্যে কেন একই সমস্যা রয়েছে। তারা কখন এটি কার্যকর করার সিদ্ধান্ত নিয়েছে? আমি মনে করি /etc/init.d উচ্চতর হিসাবে এটি শেল সমাপ্তির ফলে ব্যবহারকারীকে অতিরিক্ত টাইপ করা থেকে মুক্তি দেয়। এর -1 :) ক্ষমতায় অগ্রগতি
খুব

@ টু বাশ ট্যাব সমাপ্তি কাস্টমাইজযোগ্য। উবুন্টু কোন কাজে আসবে না, তবে এটি অদ্ভুত বলে মনে হচ্ছে যে কেউ ট্যাব-সমাপ্তির serviceনামগুলি ভাবেননি । হতে পারে তাদের বাগ ট্র্যাকারের মাধ্যমে ক্যানোনিকালে কোনও বৈশিষ্ট্য অনুরোধ জমা দিন?
একটি সিভিএন

18

এই সমস্যার সর্বাধিক সাধারণ কারণটি মাইএসকিউএল চালু করার চেষ্টা করছে যখন এটি ইতিমধ্যে চলছে।

এটি সমাধান করতে, মাইএসকিউএল কোন চলমান ইনস্ট্যান্স kill এবং তারপর আপনার স্বাভাবিক প্রারম্ভে স্ক্রিপ্ট ব্যবহার, যেমন পুনর্সূচনা service mysql start

আপনি আঘাতের জগতের জন্য প্রস্তুত না হলে বিতরণ-প্যাকেজযুক্ত সংস্করণগুলি ব্যবহার করার সময় মাইএসকিউএল ম্যানুয়ালি শুরু করার চেষ্টা করবেন না।


however the mySQL server keeps crashing- আমি মাইএসকিউএল পুনরায় আরম্ভ করি না। এটি কেবল ক্র্যাশ হয়ে গেছে, এর পরে আমার এটিকে স্পষ্টতই পুনঃসূচনা করতে হবে। ;-)
ডেভিয়েটার

@ মিশেলহ্যাম্পটন আপনি কি 'আহতদের পৃথিবী' এবং 'মাইএসকিউএল ম্যানুয়ালি শুরু করতে পারেন' সম্পর্কে আরও কিছু তথ্য দিতে পারেন? ধন্যবাদ)
সার্জ Kvashnin

11

সমাধান

আসল ফাইলগুলির একটি অনুলিপি তৈরি করুন (আইবডাটা 1, আইব_লগফাইল 0, ইব_লগফাইল 1 ...)।

mv ibdata1 ibdata1.bak 
cp -a ibdata1.bak ibdata1

http://cglreport.zhenhua.info/2008/08/mysql-error-unable-to-lock-ibdata1.html


জাদুকরীভাবে আমাকে সাহায্য।
নিল পিটারসোহন

সিপি -a এর বিন্দুটি কী?, আমি ইতিমধ্যে ম্যান পৃষ্ঠাটি পড়েছি
ইলজা

2
অনেক ধন্যবাদ, এটি সাহায্য করেছে। কিন্তু কেন?
ডেভিআরাগাও

ডকার পাত্রে চলতে থাকা ডিবিতে ব্যর্থ পুনঃসূচনা করার পরে আমার এই সমস্যা হয়েছিল। আমি কেন শিক্ষিত অনুমান করছি যে এটি কেন কাজ করে এবং এটি হ'ল কিছু মেটা ডেটা ফাইলটিতে সংরক্ষিত। এটিকে সরানো এবং এটিকে আসল স্থানে অনুলিপি করা থাকলে লক করা আছে তা নির্ধারণ করে মেটাডেটা সরিয়ে দেয়। -আর অপারেশন ফাইলের বৈশিষ্ট্যগুলি বজায় রাখে, এতে কপি চলাকালীন সেলিলাক্স সম্পর্কিত বৈশিষ্ট্যগুলি, তবে মেটাডেটা নয়।
জেডিএল

2

এটি আমাকে এটি সমাধান করতে সহায়তা করেছে:

সমস্ত ইবদাটা ফাইল মুছুন এবং মাইএসকিএল এগুলি তৈরি করুন।

বন্ধ এসকিউএল:

service mysql stop

মাইএসকিএল লাইব্রেরিতে যান:

cd /var/lib/mysql/

আপনার যদি প্রয়োজন হয় তবে ইনোডাব ফাইলগুলি অন্য কোথাও সরান:

mv ib* /root/

মাইএসকিএল শুরু করুন:

service mysql start

সহায়ক উত্তরের মাধ্যমে স্ক্রোলিং আমি ভেবেছিলাম নিশ্চয়ই এটির মতো কাজ হবে কারণ ত্রুটিটি ফাইলটি লক করতে না পারার অভিযোগ করছে। সরানোর পরে, মাইএসকিএল এগুলি পুনরায় তৈরি করেছিল তবে এখনও অভিযোগ করছে ... পাগল!
কাইল বারকেট

1

একই পুনরাবৃত্তি ত্রুটির গুগলিং থেকে এসেছে তবে ত্রুটি কোড 13 ( InnoDB: Unable to lock ./ibdata1, error: 13) সহ। ইন্টারনেটের চারপাশে প্রচুর সমাধানের চেষ্টা করার পরে, এমন একটি আবিষ্কার করলেন যা আমাকে সাহায্য করেছিল (অ্যাপমোর!)

কনফিগারেশনে এই রেখাগুলি যুক্ত করুন /etc/apparmor.d/usr.sbin.mysqld(এবং অবশ্যই অ্যাপার্মার এবং মাইএসকিএল পুনরায় লোড করুন):

/path/to/mysql/data/ r,
/path/to/mysql/data/** rwk,

প্রায়শই সমাধানের মধ্যে প্রধান পার্থক্য: দুটি বিধি (নিজের জন্য এবং সমস্ত ফাইলের জন্য ডায়াল করুন, ডাবল নোট করুন **) এবং kমাইএসকিএল ফাইলগুলিকে লক করার অনুমতি দেওয়ার বিকল্প option

আশা করি এটি কারও সাহায্য করবে।


আপনি এটি যোগ করতে পারেন /etc/apparmor.d/local/usr.sbin.mysqld। ফাইলটি উপস্থিত না থাকলে তৈরি করুন। আরও তথ্যের জন্য, দয়া করে দেখুন/etc/apparmor.d/local/README
ন্যাব

1

এটি 100% নিশ্চিত করার জন্য স্পেস পরীক্ষা করুন

df -h

যেন এটি পূর্ণ হয় এটি .sock ফাইল তৈরি করবে না।


উত্তরটি একটি আশ্চর্যজনক পার্শ্ব-প্রতিক্রিয়া সম্পর্কে, আমি দৃ strongly়ভাবে সম্মত নই যে এটি এলকিউ হবে।
পিটার বলেছেন মোনিকা

0

আপনার ফাইলের বিভাগে pid-fileপ্যারামিটার আছে কিনা তা পরীক্ষা করে দেখুন । যদি এটি উপস্থিত না থাকে তবে তা ঘটবে।[mysql]my.cnfunable to lock ...ibdata1.. error:1


0

সহজ, তবে "সিপি -a" দিয়ে যাওয়ার চেয়ে দ্রুত। এবং "সিপি -a" এবং অন্যান্য কিছু না পারলে সহায়তা করে।

  1. service mysql stop && pkill -f mysql

সমস্ত মাইএসকিএল প্রক্রিয়া থেকে মুক্তি পান

  1. vi /etc/mysql/my.cnf

প্যারামিটার ডেটাডির = / ভার / লিব / মাইএসকিএলকে ডেটাডির = / ভার / লিব / মাইএসকিএল 2 এ পরিবর্তন করুন (অথবা আপনার না থাকলে কেবল যোগ করুন)

  1. mv /var/lib/mysql /var/lib/mysql2

একটি নতুন নামে ডেটাডির নামকরণ করুন

  1. service mysql start

আপনার টাম্বুরাইন প্রস্তুত করুন


0

অন্য কোনও সমাধান যদি কাজ না করে তবে সমস্যাটি সম্ভবত অ্যাপআর্মার ভুল কনফিগারেশন থেকে উদ্ভূত হয়েছে।

সুতরাং ঠিক করুন:

$ apt install apparmor-profiles

এবং তারপরে মাইএসকিউএল পুনরায় আরম্ভ করুন (এটি কত দ্রুত পুনরায় চালু হবে তা লক্ষ্য করুন)।

আমি করছিলাম যখন AppArmor সম্পর্কিত একটি ফাইল হারিয়েছে:

$ systemctl status mysql.service

তাই আমি কেন AppArmor এর কনফিগারেশনে কিছু ভুল ভেবেছিলাম।

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