এই ত্রুটি বার্তাটি প্রদর্শিত হয় যখন আমি একটি ডকার ইমেজে উবুন্টু 16.04 এবং সর্বশেষ মাইএসকিএল 5.7.19-0ubuntu0.16.04.1 ব্যবহার করি।
এটি ঠিক করার জন্য কী করা যেতে পারে?
ত্রুটি পুনরুত্পাদন করতে
পান
Dockerfile
:FROM ubuntu:16.04 RUN apt update RUN DEBIAN_FRONTEND=noninteractive apt install -y mysql-server
(এছাড়াও এখানে উপলব্ধ )
বিল্ড এবং রান করুন:
docker build -t mysqlfail . docker run -it mysqlfail tail -1 /var/log/mysql/error.log
নিম্নলিখিত ত্রুটি লগ প্রদর্শিত হবে:
2017-08-26T11: 48: 45.398445Z 1 [সতর্কতা] মূল @ লোকালহোস্ট একটি খালি পাসওয়ার্ড দিয়ে তৈরি করা হয়েছে! দয়া করে --initialize- সুরক্ষিত বিকল্পটি স্যুইচ করা বিবেচনা করুন।
যা আমরা যা চেয়েছিলাম ঠিক তেমনটি ছিল: একটি মাইএসকিএল এখনও কোনও রুট পাসওয়ার্ড সেট করে নি।
অতীতে (উবুন্টু 14.04 / mysql 5.5)
service mysql start
সম্ভব হয়েছিল। এখন আপনি যদি এটি চেষ্টা করে ব্যর্থ হনdocker run -it mysqlfail service mysql start * Starting MySQL database server mysqld No directory, logging in with HOME=/ [fail]
এবং
/var/log/mysql/error.log
একটি লাইন রয়েছে:2017-08-26T11: 59: 57.680618Z 0 [ERROR] মারাত্মক ত্রুটি: সুবিধার টেবিলগুলি খুলতে এবং লক করতে পারে না: 'ব্যবহারকারীর' জন্য সারণী স্টোরেজ ইঞ্জিনটিতে এই বিকল্প নেই
বিল্ড লগ (সম্পূর্ণ জন্য Dockerfile
)
Sending build context to Docker daemon 2.56kB
Step 1/4 : FROM ubuntu:16.04
---> ebcd9d4fca80
...
Step 4/4 : RUN service mysql start
---> Running in 5b899739d90d
* Starting MySQL database server mysqld
...fail!
The command '/bin/sh -c service mysql start' returned a non-zero code: 1
অদ্ভুত ধারাবাহিকতা
আমার উত্তর প্রসঙ্গে বর্ণিত পরীক্ষাগুলির পরে , আমি একটি শেল স্ক্রিপ্ট তৈরি করেছি যা একটি করে does
select count(*)
প্রতিটি টেবিলের জন্য মাইএসকিএল স্পেসে একটানা তিনবার ক্যোয়ারী (কারণ পরীক্ষাগুলি দেখায় যে কিছু টেবিলে কোয়েরিটি ঠিক দু'বার ব্যর্থ হবে :-()।
তখন একটা
mysql_upgrade
এবং
service mysql restart
চেষ্টা করা হয় ইন Dockerfile
স্ক্রিপ্ট মাধ্যমে উপলব্ধ করা হয়
COPY mysqltest.sh .
এই স্ক্রিপ্টের সাথে ট্রায়ালগুলি অদ্ভুত / ক্রেজি ফলাফল দেয়।
জন্য
Docker environment
শুরু এখনও ব্যর্থ[ত্রুটি] মারাত্মক ত্রুটি: সুবিধার টেবিলগুলি খুলতে এবং লক করতে পারে না: 'ব্যবহারকারীর' জন্য সারণী স্টোরেজ ইঞ্জিনে এই বিকল্প নেই
স্ক্রিপ্ট চলছে
sh mysqltest.sh root
মধ্যে
docker environment
থেকে বিশালাকার2017-08-27T09: 12: 47.021528Z 12 [ERROR] / usr / sbin / mysqld: টেবিল './mysql/db' ক্র্যাশ হয়েছে হিসাবে চিহ্নিত হয়েছে এবং মেরামত করা উচিত
2017-08-27T09: 12: 47.050141Z 12 [ERROR ] টেবিলটি মেরামত করা
যায়নি : mysql.db 2017-08-27T09: 12: 47.055925Z 13 [ERROR] / usr / sbin / mysqld: সারণী './mysql/db' ক্র্যাশ হয়েছে হিসাবে চিহ্নিত হয়েছে এবং
2017-08 মেরামত করা উচিত -27T09: 12: 47.407700Z 54 [ERROR] / usr / sbin / mysqld: টেবিল './mysql/proc' ক্র্যাশ হয়েছে হিসাবে চিহ্নিত হয়েছে এবং মেরামত করা উচিত
2017-08-27T09: 12: 47.433516Z 54 [ত্রুটি] করা যায়নি t মেরামতের টেবিল: mysql.proc
2017-08-27T09: 12: 47.440695Z 55 [ERROR] / usr / sbin / mysqld: টেবিল './mysql/proc' ক্র্যাশ হয়েছে এবং চিহ্নিত করা উচিত
2017-08-27T09: 12: 47.769485Z 81 [ERROR] / usr / sbin / mysqld: সারণী './mysql/tables_priv'ক্র্যাশ হিসাবে চিহ্নিত হয়েছে এবং এটি মেরামত করা উচিত
2017-08-27T09: 12: 47.792061Z 81 [ERROR] টেবিলটি মেরামত করা
যায়নি: mysql.tables_priv 2017-08-27T09: 12: 47.798472Z 82 [ERROR] / usr / sbin / mysqld: টেবিল './mysql/ টেবিল_প্রিয়ভ 'ক্র্যাশ হিসাবে চিহ্নিত হয়েছে এবং এটি মেরামত করা উচিত
2017-08-27T09: 12: 47.893741Z 99 [এআরআরআর] / ইউএসআর / এসবিন / মাইএসকিএলডি: সারণী' ./mysql/user 'ক্র্যাশ হিসাবে চিহ্নিত হয়েছে এবং এটি
2017-08 মেরামত করা উচিত -27T09: 12: 47.914288Z 99 [ERROR] টেবিলটি মেরামত করা
যায়নি: mysql.user 2017-08-27T09: 12: 47.920459Z 100 [ERROR] / usr / sbin / mysqld: টেবিল './mysql/user' ক্র্যাশ হওয়া হিসাবে চিহ্নিত এবং মেরামত করা উচিত
এখানে কী ঘটছে এই অদ্ভুত আচরণের কারণ?