ম্যুসিকিএল-সার্ভারটি শুদ্ধ হওয়ার পরে পুনরায় ইনস্টল করতে পারে না


29

আমি সম্প্রতি উবুন্টু 16.04 এর একটি নতুন ইনস্টল করেছি। আমিও ইনস্টল mysql-serverএবং mysql-clientমাধ্যমে (তাদের ডিফল্ট সংস্করণ 5.7.12) apt-get install

৫.7.১২ কিছু সমস্যা দেখানোর কারণে আমি এটি আনইনস্টল করার সিদ্ধান্ত নিয়েছি। আমি apt-get remove mysql-server mysql-clientপ্রথমে চেষ্টা করেছি কিন্তু দেখেছি যে নিদর্শনগুলি পছন্দ করেছে /etc/mysqlএবং /var/lib/mysqlসরানো হয়নি।

আমি তখন চেষ্টা করেছিলাম apt-get --purge removed mysql-server mysql-client, কিন্তু এখনও কোন পার্থক্য নেই।

সুতরাং, আমি ম্যানুয়ালি এগুলি (মাধ্যমে rm -rf) সরিয়েছি । আমি এর *mysql*অধীনে থাকা সমস্ত ফাইলকে ম্যানুয়ালি মুছে ফেলেছি যেমন /usr/কোনও mysql-*নির্ভরতা প্যাকেজ থেকে এসেছে mysql-common

যাইহোক, এখন, যখন আমি পুনরায় ইনস্টল করতে ইচ্ছুক mysql-server and -client, আমি খুঁজে পাচ্ছি যে আমি পারছি না।

আসলে, এখন আমি এমন অবস্থায় আছি যেখানে আমিও পারি না apt-get remove mysql-serverবা পারি না apt-get install mysql-server!

আমি যে অবস্থাতে রয়েছি তা কীভাবে ঠিক করবেন? যদি আমার স্থানীয় প্যাকেজ সংগ্রহস্থল মেটাডেটা দূষিত হয়ে যায়, তবে আমি কীভাবে এটি মেরামত করব?

আমি আমার অন্যান্য সমস্ত অ্যাপ্লিকেশন এবং পরিবেশের সাথে পুরো আশীর্বাদপ্রাপ্ত ওএসটিকে পুনরায় ইনস্টল করতে ঘৃণা করব, কেবলমাত্র আরও একবারের কারণে mysql-server

নিম্নলিখিতটি উদাহরণস্বরূপ, আমি যখন মুছে ফেলার চেষ্টা করি তখন আমি যে ত্রুটি পাই তা হ'ল mysql-server:

$ apt-get remove  mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following packages were automatically installed and are no longer required:
  libaio1 mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7
Use 'apt autoremove' to remove them.
The following packages will be REMOVED:
  mysql-server
0 upgraded, 0 newly installed, 1 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 159 kB disk space will be freed.
Do you want to continue? [Y/n] 
(Reading database ... 237601 files and directories currently installed.)
Removing mysql-server (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
Errors were encountered while processing:
 mysql-server-5.7
E: Sub-process /usr/bin/dpkg returned an error code (1)

এবং ইনস্টল করার চেষ্টা করার সময়, আমি এই ত্রুটিটি পেয়েছি:

$ apt-get -f install mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
The following NEW packages will be installed:
  mysql-server
0 upgraded, 1 newly installed, 0 to remove and 0 not upgraded.
1 not fully installed or removed.
Need to get 0 B/10.1 kB of archives.
After this operation, 159 kB of additional disk space will be used.
Selecting previously unselected package mysql-server.
(Reading database ... 237599 files and directories currently installed.)
Preparing to unpack .../mysql-server_5.7.12-0ubuntu1_all.deb ...
Unpacking mysql-server (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

এর ফলাফল এখানে apt-get install -f:

$ apt-get install -f 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
2 not fully installed or removed.
After this operation, 0 B of additional disk space will be used.
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
dpkg: error processing package mysql-server-5.7 (--configure):
 subprocess installed post-installation script returned error exit status 1
dpkg: dependency problems prevent configuration of mysql-server:
 mysql-server depends on mysql-server-5.7; however:
  Package mysql-server-5.7 is not configured yet.

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

দেখে মনে হচ্ছে mysql-server-5.7একটি খারাপ অবস্থায় রয়েছে, আবার ইনস্টল করার চেষ্টা করুন: sudo apt-get install --reinstall mysql-server-5.7
fkraiem

কোনও পার্থক্য নেই, আমি একই ত্রুটি লাইন ... invoke-rc.d: initscript mysql, action "start" failed. ...পেয়েছি : যে আমি ইনস্টল কমান্ডের অন্যান্য স্বাদের সাথে পাচ্ছি।
হ্যারি

তারপর এটি অপসারণ করতে, চেষ্টা করুন ... sudo apt-get remove --purge mysql-server-5.7। নোট করুন যে এটি সত্যই mysql-server-5.7আমরা কথা বলছি, না mysql-server
fkraiem

@ হ্যারি অনেক সময়, এই ধরণের ত্রুটি থেকে মুক্তি পেতে আমি সিস্টেমটি পুনরায় চালু করি।
ডেইজি

উত্তর:


80

10 জানুয়ারী 2017 সম্পাদিত : এই পোস্টে গুরুতর সমস্যাগুলি সংশোধন করার জন্য এটি এই পোস্টের একটি প্রধান পর্যালোচনা।

হার্ট এ হার্ট

সমস্যাটি হ'ল প্যাকেজটি এখনও অর্ধ-ইনস্টলড এবং অর্ধ-কনফিগার করা অবস্থায় সিস্টেমে রয়েছে এবং স্পষ্টভাবে তা অপসারণ করা দরকার।

dpkg: error processing package mysql-server (--configure):
 dependency problems - leaving unconfigured
No apport report written because the error message indicates its a followup error from a previous failure.
                                                                                                          Errors were encountered while processing:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)

এর সত্যই যা বলছে তা হ'ল প্যাকেজটি mysql-server-5.7নির্ভরতা mysql-server, ইতিমধ্যে ইনস্টল করা আছে, তবে কনফিগার করা হয়নি। সুতরাং আপনার purgeপিছনে ফেলে রাখা সেই রুটি ক্র্যামসগুলি সরিয়ে ফেলতে হবে mysql-server-5.7

sudo apt purge mysql-server mysql-server-5.7

যুক্তিসহ ব্যাখ্যা

আপনি যখন সফ্টওয়্যার ব্যবহার করে ইনস্টল করেন apt, এটি স্বয়ংক্রিয়ভাবে আপনার জন্য নির্ভরতাও পরিচালনা করে।

আপনি যখন নির্দিষ্ট প্যাকেজগুলি সরিয়ে ফেলেন তখন এটি একই রকম নির্ভরতাগুলি পরিচালনা করতে পারে না। এই পোস্টের ক্ষেত্রে, যে নির্ভরতা হয় mysql-server-5.7

নিম্নলিখিত কমান্ডটি জারি করে আপনি প্যাকেজ অবস্থা দেখতে চেক করতে পারেন।

dpkg-query -l [package-name-here]

সাধারণত আপনি যদি কোডটি unবা rcপ্যাকেজটির নামের বাম দিকে দেখতে পান তবে আপনি এটি বলতে পারবেন যে এটি আসলে কোনও ভাঙা প্যাকেজ কিনা।

আমি যখন এই সমস্যাটি অনুভব করেছি তখন এটি ছিল libapache2-mod-phpএবং সাথেই libapache2-mod-php7.0। এটি আমার আউটপুট ছিল।

Desired=Unknown/Install/Remove/Purge/Hold
| Status=Not/Inst/Conf-files/Unpacked/halF-conf/Half-inst/trig-aWait/Trig-pend
|/ Err?=(none)/Reinst-required (Status,Err: uppercase=bad)
||/ Name                        Version            Architecture       Description
+++-===========================-==================-==================-============================================================
un  libapache2-mod-php          <none>             <none>             (no description available)

আমার ক্ষেত্রে এটি দাবি করেছে যে আমার প্যাকেজের অবস্থা অজানা এবং এটি unআমার সিস্টেমে ইনস্টল করা হয়নি (কোড )।

আপনাকে বলতে যখন aptথেকে removeকিছু, এটা প্যাকেজ, কনফিগারেশন ফাইল, এবং অন্যান্য আইটেম, স্বচালিত ইনস্টলেশনের সময় সমস্যা হতে পারে চলে যাবে।

আপনাকে বলতে যখন aptথেকে purgeকিছু এটা কোন পাউরুটির গুড়োয় যে অপসারণ সেরা আছে removeবামে পিছনে থাকতে পারে।

আমি প্রাথমিকভাবে বলেছি যে আমি ধরে নিয়েছি যে প্রক্রিয়াটি এখনও চলছে, তবে সম্ভবত এটি নিষ্ক্রিয় বা মৃত।

পরিষেবাটি আপনার প্যাকেজ অপসারণে হস্তক্ষেপ করছে কিনা তা যাচাই করার সর্বোত্তম উপায় হ'ল প্রথমে সেই পরিষেবাটি পরীক্ষা করা।

1) mysqlপরিষেবা তদন্ত

আমাদের প্রদত্ত সিস্টেমের ত্রুটিটি ব্যবহার করে apt, আমরা আসলে পরিষেবার systemctlস্থিতি পরীক্ষা করে ত্রুটিটি তদন্ত করতে ব্যবহার করতে পারিmysql

sudo systemctl status [pattern]

আমাদের ক্ষেত্রে, আমরা দেখতে চাই যে মাইএসকিএল চলছে কিনা তাই টাইপ করতে পারি

systemctl status mysql.service

পরিষেবা চলমান থাকলে আপনার এই আউটপুটটি দেখতে হবে

systemctl status mysql
● mysql.service - MySQL Community Server
   Loaded: loaded (/lib/systemd/system/mysql.service; enabled; vendor preset: enabled)
   Active: active (running) since Tue 2017-01-10 23:10:06 EST; 1h 3min ago
 Main PID: 1206 (mysqld)
   CGroup: /system.slice/mysql.service
           └─1206 /usr/sbin/mysqld

দ্রষ্টব্য: যদি পরিষেবাটি মারা যায়, আপনি একটি সংক্ষিপ্ত বার্তা দেখতে পাবেন যে সেই নামটি দিয়ে কোনও পরিষেবা চলছে না এবং তারপরে পদক্ষেপ 3 এ যান ip

2) mysqlপরিষেবা ব্যবহার করে বন্ধ করাsystemctl

দ্রষ্টব্য: [প্যাটার্ন] অবশ্যই serviceবা এর তালিকাভুক্ত নাম হতে হবে initctl। আমি যে কারণটি ব্যবহার করছি patternতা হ'ল systemctlরেজিেক্স ম্যাচিং ব্যবহার করে, সুতরাং আপনার যদি killযুক্তিটি অবশ্যই ব্যবহার করা হয় তবে সাবধান হন ।

sudo systemctl stop [pattern]

যেখানে patternmysql ডিমন / পরিষেবা নাম উপস্থাপন করে। স্টপ কাজ না হলে চেষ্টা করুন

sudo systemctl kill [pattern]

উদাহরণ স্বরূপ

sudo systemctl stop mysql

3) আনইনস্টল / শুদ্ধি mysql

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

দ্রষ্টব্য: নিশ্চিত করুন যে আপনি সঠিক mysqlসংস্করণটিকে লক্ষ্য করছেন । উদাহরণস্বরূপ, আপনি যদি 5.5 ব্যবহার করেন তবে সংস্করণ নম্বরটি যথাযথভাবে সামঞ্জস্য করুন।

সতর্কতা: নিম্নলিখিত পদক্ষেপগুলি আপনার ডেটা মুছে ফেলবে! (ব্যাকআপ করার জন্য প্রথম কমান্ডটি কার্যকর করা আবশ্যক)

উত্স: আমি কীভাবে মাইএসকিউএল আনইনস্টল করব?

tar -zcvf ~/msql_backup.tar.gz /etc/mysql /var/lib/mysql 
sudo apt purge mysql-server mysql-client mysql-common mysql-server-core-5.7 mysql-client-core-5.7
sudo rm -rfv /etc/mysql /var/lib/mysql
sudo apt autoremove
sudo apt autoclean

4) ভাঙা প্যাকেজ ঠিক করা এবং নিখোঁজ নির্ভরতা হ্যান্ডলিং

পূর্ববর্তী পদক্ষেপগুলি যদি আপনার পক্ষে কাজ না করে, তবে আপনার কোনও ক্ষতি হয়ে যাওয়া মেরামত করার aptজন্য --fix-brokenবিকল্পটি চালাতে হতে পারে।

apt updateআগে এবং তারপরে নিশ্চিত হয়ে নিনapt install

sudo apt update    
sudo apt install mysql-server mysql-client --fix-broken --fix-missing

5) অন্য সমস্ত ব্যর্থ হলে, mysqlনিজেকে তৈরি এবং ইনস্টল করুন

উপরের কোনওটি যদি কাজ না করে তবে আপনাকে সেখান থেকে ইনস্টল করতে ম্যানুয়ালি উত্সটি ডাউনলোড করতে হবে, সংকলন করতে হবে এবং মেক বা ব্যাশ ব্যবহার করতে হবে (এটি সমস্ত অটোমেটেড হওয়ার পরেও ততটা বেদনাদায়ক নয়)।


"16.04 টি এখনই প্রচুর বাগের সাথে ছাঁটাই হয়েছে।" মাইএসকিউএল সহ আমার জন্য কাজ করে। আমার কাছে মনে হয় যে আমরা এখানে দেখি বেশিরভাগ সমস্যা হ'ল লোকেরা কিছু ভুল করছে যেমন rmপ্যাকেজগুলির সাথে সম্পর্কিত ফাইলগুলি চেষ্টা করে from
fkraiem

1
চমৎকার কাজের বন্ধু! ধন্যবাদ. আমি কিছু বোকা নির্দেশাবলী ব্যবহার করে আমার পুরো দিন নষ্ট করেছি। এখন এই কাজ!
রেনজিথ ভিআর

আমি আপনার নির্দেশাবলী অনুসরণ করেছি এবং sudo systemctl স্টপ মাইএসকিএল কাজ করছে বলে মনে হচ্ছে। তবে পুনরায় বুট করার পরে এটি আবার ভেঙে যায়। শুরু বা থামানো কাজ করে না। sudo systemctl স্থিতি mysql দেখায়: সক্রিয়: নিষ্ক্রিয় (স্টপ সিগটার্ম) সোম 2016-06-27 11:05:22 বিএসটি; 8 মিনিট আগে মাইএসকিএল বন্ধ হওয়ার জন্য আমাকে কি 10 মিনিট অপেক্ষা করতে হবে? আপনি কি অবাক হন না যে লোকেরা এমন একটি পরিষেবা পরিস্কার করে যা পুরোপুরি বন্ধ হয় নি? এটা কি উবুন্টু 16.04 এটি ঠিক করবে? পূর্ববর্তী এলটিএস সংস্করণে বা অন্য কোনও ডিস্ট্রোতে ফিরে বিকল্পগুলি কী কী?
রুবি_বজেক্ট

এই পদ্ধতিতে অপসারণ এবং পুনরায় ইনস্টল করার জন্য পুরোপুরি ধন্যবাদ!
লুউকি

5
দ্রষ্টব্য: sudo rm -rf /var/lib/mysqlডিফল্ট অবস্থানে আপনার সমস্ত ডাটাবেস সরিয়ে ফেলবে। প্রথমে ব্যাক আপ করুন!
Augusto

7

প্রথম পোস্টের সমস্যাটি হ'ল আপনি স্কেল আইটেমগুলির জন্য না হয়ে কোনও মেটা-প্যাকেজটি পুনরায় কনফিগার করতে পারবেন না। আপনার বর্তমান প্রকাশের আইটেম নির্দিষ্ট করতে হবে।

বলুন;

apt search mysql-server

এর মধ্যে প্যাকেজগুলির তালিকা প্রদর্শন করা উচিত

"mysql-server-5.7" "mysql-server-core-5.7" বা তার পরে প্রকাশিত হয়

তারপর;

dpkg-reconfigure --force mysql-server-5.7 mysql-server-core-5.7

সম্পন্ন.


4

এটি আপনার জন্য সঠিক সমাধান

প্রথমত, আপনাকে মাইএসকিএল-সার্ভারের সমস্ত প্যাকেজ সরিয়ে ফেলতে হবে:

সতর্কতা: নিম্নলিখিত পদক্ষেপগুলি আপনার ডেটা মুছে ফেলবে! প্রথমে ব্যাকআপ করুন!

sudo rm -rf /var/lib/mysql

তারপরে ইনস্টল করুন:

sudo apt-get install lamp-server^

অথবা আপনি এটি করতে পারেন:

sudo apt-get install mysql-server

0

আমি এটা দেখেছিলাম

Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.

একটি সূত্র হিসাবে যে এখনও একটি ভ্রান্ত প্রারম্ভিক স্ক্রিপ্ট অস্তিত্ব ছিল।

/etc/init.d/mysqlএটির জন্য কোনও সিমলিংক সন্ধান করুন। এগুলি সরানো আমার পুনরায় ইনস্টল-পরে-শুদ্ধি সমস্যাগুলি সমাধান করার জন্য হাজির।


0

মাইএসকিউএল থেকে মারিয়াডিবিতে স্যুইচ করার সময়ও এই ত্রুটিটি ঘটেছিল ( https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1490071 )।

মাইএসকিউএল বাইনারি ডেটা ফাইলগুলি মারিয়াডিবিয়ের সাথে সামঞ্জস্যপূর্ণ ছিল না তাই আমি মাইএসকিউএল ফিরে সরিয়ে নিয়েছি কারণ আমার কাছে মাইএসকিএলডামের সাথে ঝামেলা করার সময় নেই।

প্রথমে আমাকে মারিয়াডিবি ডেটা সরিয়ে নিয়ে যেতে হবে /var/lib/mysql, তারপরে মাইএসকিউএল ইনস্টল করুন এবং তারপরে আমার মূল ডেটাটি /var/lib/mysql-5.7(এই ব্যাকআপটি ত্রুটির আগে স্বয়ংক্রিয়ভাবে তৈরি হয়েছিল) থেকে সরিয়ে নিয়ে যেতে হয়েছিল /var/lib/mysql


-2

apt-get -f installআপনার ভাঙা এসকিউএল প্যাকেজটি ঠিক করার চেষ্টা করুন এবং যদি আপনি প্যাকেজ ম্যানেজারের সাথে এখনও সমস্যা হয় তবে এসকিউএল সার্ভারের উত্স কোডটি ডাউনলোড করুন এবং এটি সংকলন করুন !! তবে উপরের কমান্ডটি ব্যবহার করে দেখুন dpkg -l | grep sqlএবং প্যাকেজ ম্যানেজারটি এখনও আপনাকে এসকিউএল মনে করে কিনা তা খুঁজে বের করতে ব্যবহার করুন ..


এটা কাজ করছে না. প্যাকেজ ইনস্টল করার চেষ্টা করার সময় আমি যে ত্রুটি পেয়েছি তাও আমি অন্তর্ভুক্ত করেছি।
হ্যারি

@ হ্যারি আপনার apt-get -f installকোনও প্যাকেজের নাম উল্লেখ না করে নিজেই চালানো উচিত ।
fkraiem

যেমনটি এফক্রাইম বলেছে এটি প্যাকেজের নামের সাথে এটি ব্যবহার করুন ...
আলী গাসেমপুর

এর আউটপুট যুক্ত হয়েছে apt-get install -f, কোনও পরিবর্তন নেই।
হ্যারি

সিনাপটিক অ্যাপ্লিকেশনটি ব্যবহার করে দেখুন এটি ভেঙে প্যাকেজ রয়েছে কিনা তা পরীক্ষা করুন (বাম কলামে) [যদি আপনার ডেস্কটপ থাকে]
আলী গায়েসপুর ২
আমাদের সাইট ব্যবহার করে, আপনি স্বীকার করেছেন যে আপনি আমাদের কুকি নীতি এবং গোপনীয়তা নীতিটি পড়েছেন এবং বুঝতে পেরেছেন ।
Licensed under cc by-sa 3.0 with attribution required.