วิธีซ่อมแซมการติดตั้งแพคเกจที่เสียหาย (mysql)


15

หลังจากอัปเกรดเป็น Ubuntu 16.04 ฉันสังเกตว่า mysql มีข้อผิดพลาดที่เหลือเชื่อ เชื่อว่ามันเป็นการเซ็ตอัพที่ไม่สมบูรณ์ฉันลองใช้การล้างข้อมูลของ mysql ดูเหมือนจะไม่ลบทุกอย่างดังนั้นฉันลองทำเอง:

sudo rm -r /etc/mysql
sudo rm -r /usr/share/mysql-workbench
sudo rm -r /usr/share/mysql
sudo rm -r /usr/share/mysql-common

นี่เป็นความผิดพลาด อย่าพยายามทำเช่นนี้ ตอนนี้ mysql จะติดตั้งไม่ถูกต้องด้วยซ้ำ ฉันได้ลองติดตั้งใหม่แล้ว:

sudo apt-get install --reinstall $(apt-cache depends mysql-server | grep -Po 'Depends:\s+\K[^ ]+$' | tr '\n' ' ' )

และแพ็คเกจเอง:

sudo apt install mysql-workbench mysql-server --reinstall

แต่ฉันได้รับข้อผิดพลาดที่คลุมเครือทุกประเภทเช่น:

sudo apt-get install --reinstall mysql-server
Reading package lists... Done
Building dependency tree       
Reading state information... Done
0 upgraded, 0 newly installed, 1 reinstalled, 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.
E: Internal Error, No file name for mysql-server:amd64

และถอนการติดตั้ง

sudo apt-get remove mysql-common
Reading package lists... Done
Building dependency tree       
Reading state information... Done
Some packages could not be installed. This may mean that you have
requested an impossible situation or if you are using the unstable
distribution that some required packages have not yet been created
or been moved out of Incoming.
The following information may help to resolve the situation:

The following packages have unmet dependencies:
 libmysqlclient20 : Depends: mysql-common (>= 5.5) but it is not going to be installed
 mariadb-client-core-10.0 : Depends: mariadb-common (>= 10.0.24-7) but it is not going to be installed
E: Error, pkgProblemResolver::Resolve generated breaks, this may be caused by held packages.

หรือถ้าฉันกำหนดค่า

sudo dpkg --configure -a
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
/var/lib/dpkg/info/mysql-server-5.7.postinst: line 112: /usr/share/mysql-common/configure-symlinks: No such file or directory
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
Errors were encountered while processing:
 mysql-server-5.7
 mysql-server

หรือถ้าฉันบังคับให้ติดตั้ง:

sudo apt-get -f install
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) ...
/var/lib/dpkg/info/mysql-server-5.7.postinst: line 112: /usr/share/mysql-common/configure-symlinks: No such file or directory
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)

หรือถ้าฉันจะล้าง:

sudo apt-get -f purge mysql-server 
Reading package lists... Done
Building dependency tree       
Reading state information... Done
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] y
(Reading database ... 348226 files and directories currently installed.)
Removing mysql-server (5.7.12-0ubuntu1) ...
Setting up mysql-server-5.7 (5.7.12-0ubuntu1) ...
/var/lib/dpkg/info/mysql-server-5.7.postinst: line 112: /usr/share/mysql-common/configure-symlinks: No such file or directory
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 ไม่สามารถกู้คืนจากการติดตั้งบางส่วนหรือไม่ ฉันต้องติดตั้งระบบปฏิบัติการใหม่หรือไม่?


คุณได้พยายามทำวิธีที่ง่ายกว่าโดยsudo apt-get install --reinstall mysql?
Videonauth

ฉันได้รับการปรับปรุงเพื่อรวมข้อผิดพลาดจากสิ่งเหล่านั้น
Jonathan

บางทีคุณอาจต้องการแชทและเราดูว่าเราสามารถแยกแยะได้หรือไม่
Videonauth

คำตอบ:


22

ทำสิ่งต่อไปนี้เพื่อล้างแพ็คเกจที่เสียหาย:

sudo apt-get clean
sudo apt-get update
sudo dpkg -r mysql-client-5.7
sudo dpkg -r mysql-server-5.7
sudo dpkg -r libmysqlclient20:i386
sudo dpkg -r libmysqlclient20:amd64
sudo dpkg -r libmysqlclient18:amd64
sudo dpkg -r mysql-common
sudo dpkg -r mysql 

หลังจากนั้นติดตั้งใหม่ด้วย:

sudo apt-get install mysql mysql-client* mysql-server*

ขอบคุณมาก!! ลบอ้างอิงหนึ่งโดยหนึ่งเป็นตัวเลือกเดียวที่จะได้รับจาก apt-get ติด
stackMonk

+1 สำหรับสิ่งนี้ ขอบคุณสำหรับการกล่าวถึงสแต็คที่สมบูรณ์ของแพ็คเกจที่จะลบสำหรับ MySQL เพื่อลบ มันก็ใช้ได้สำหรับฉันเช่นกัน
Parveen Verma

ใน Ubuntu ของฉัน 18.04 พยายามที่จะลบ mysqlclient (เรียกใช้คำสั่งที่ 3) ผลิตว่า: ปัญหาการพึ่งพาป้องกันการลบของ mysql-client-5.7: mysql-server-5.7 ขึ้นอยู่กับ mysql-client-5.7 (> = 5.7.26-0ubuntu0.18.04 1) dpkg: แพ็คเกจประมวลผลข้อผิดพลาด mysql-client-5.7 (- ลบ): ปัญหาการพึ่งพา - ไม่ลบข้อผิดพลาดที่พบขณะประมวลผล: mysql-client-5.7, แต่ใช้ sudo apt purge mysql-server mysql-server-5.7 mysql-server- core-5.7 จากที่นี่askubuntu.com/questions/760724/16-04-upgrade-broke-mysql-serverดูเหมือนว่าจะลบอินสแตนซ์นี้
Carmine

ตอนนี้ฉันได้รับข้อผิดพลาดเนื่องจากฉันพยายามติดตั้ง sudo apt ติดตั้ง openjdk-8-jre openjdk-8-jdk
Carmine

ฉันสามารถค้นหากระบวนการที่ก่อนหน้านี้ปิดกั้นความพยายามใด ๆ ของฉันในการทำความสะอาดการอัปเดตของ mysql แน่นอนฉันได้หยุดอินสแตนซ์ที่ทำงานอยู่ในระบบของฉัน หลังจากนั้นฉันก็ทำให้แน่ใจว่าระบบของฉันอัพเดท แน่นอนฉันค้นพบว่าฉันพลาดการอัพเดทไปหลายครั้ง หลังจากนั้นจนถึงตอนนี้การติดตั้งจาวา sdk ที่ต้องการอินสแตนซ์ mysql ของตัวเองดูเหมือนว่าจะดำเนินไปด้วยดี
Carmine

13

ขอบคุณ @Videonauth

sudo dpkg -r mysql-client-5.7
sudo dpkg -r mysql-server-5.7
sudo dpkg -r libmysqlclient20:i386
sudo dpkg -r libmysqlclient20:amd64
sudo dpkg -r libmysqlclient18:amd64
sudo dpkg -r mysql-common

จากนั้นเรียกใช้:

sudo apt-get purge mysql\* mariadb\* libmysql\* libmariadb\*

หากมีสิ่งใดล้มเหลวให้เรียกใช้sudo dpkg -r <failedpackage>และหากนั่นล้มเหลวให้ลบแพ็คเกจที่ขึ้นอยู่กับมัน หากคุณทำซ้ำในที่สุดก็จะได้รับ apt-get อีกครั้ง

ดูเพิ่มเติมอะไรคือความแตกต่างระหว่าง dpkg และ aptitude / apt-get?


การลบแพ็กเกจ libmysqlclient เหล่านั้นแม้ว่าแพ็กเกจอื่นจะขึ้นอยู่กับพวกเขาและการกำจัดทุกอย่างก็เป็นการหลอกลวง แม้ว่าตอนนี้ฉันจะได้รับข้อผิดพลาด mysql_upgrade
skerit

ฉันไม่เคยมีข้อผิดพลาด mysql_upgrade แต่คุณอาจต้องลบแพ็คเกจเพิ่มเติม ฉันคิดว่ามันขึ้นอยู่กับแพคเกจที่เสียหาย มีวิธีการค้นหาแพ็คเกจทั้งหมดที่ติดตั้งที่เกี่ยวข้องกับ MySQL แต่ฉันลืมได้อย่างไร ฉันคิดว่ามันเป็นคำสั่ง dpkg list ที่ส่งผ่าน grep
Jonathan

9

ลองนี้

เรียกใช้คำสั่งนี้เพื่อล้าง mysql แทนที่รุ่น 5.7 ด้วยเวอร์ชันที่คุณติดตั้ง

sudo apt purge mysql-client-5.7 mysql-client-core-5.7 mysql-common mysql-server-5.7 mysql-server-core-5.7 mysql-server

เรียกใช้สิ่งนี้เพื่อล้างและอัปเดตแพ็คเกจ

sudo apt update && sudo apt dist-upgrade && sudo apt autoremove && sudo apt -f install

ในที่สุดก็ติดตั้ง mysql

sudo apt install mysql-server

สิ่งนี้ใช้ได้สำหรับฉัน


1
สิ่งนี้ใช้ได้กับฉันโดยที่คำตอบที่เลือกไม่ได้ (มันล้มเหลวsudo dpkg -r mysql-client-5.7)
jeff-h

ขอขอบคุณ! ฉันกำลังมองหาวิธีแก้ปัญหาเป็นเวลาหลายชั่วโมงและนี่เป็นคำตอบเดียวที่ใช้ได้!
mirza

1
สิ่งนี้ใช้ได้สำหรับฉัน นี้กวดวิชายังช่วย
nwaweru

4

หลังจากกำจัดmysqlตามที่แสดงข้างต้นคุณต้องติดตั้ง mysql ด้วยวิธีนี้:

sudo apt-get install mysql-common 
sudo apt-get install mysql-server

เมื่อคุณติดตั้งด้วยวิธีนี้คุณจะไม่มีข้อผิดพลาดในการติดตั้ง


สิ่งนี้ใช้ได้กับฉัน
user1735921

2

ฉันไม่ทราบเหตุผลที่แน่นอน แต่วิธีการทั้งหมดนี้ใช้ไม่ได้สำหรับฉัน ในกรณีของฉันขั้นตอนที่แก้ไขปัญหาคือ:

sudo apt-get purge mysql-*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade

sudo rm -rf /etc/mysql
sudo rm -rf /var/lib/mysql*

และรีบูต !

ในที่สุดฉันก็สามารถวิ่งได้ sudo apt-get install mysql-server!


ขอบคุณมันใช้งานได้สำหรับฉัน
Nijo

1

สิ่งนี้ใช้ได้สำหรับฉัน

sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade

หลังจากนั้นฉันติดตั้ง mysql อีกครั้งด้วย

sudo apt-get install mysql-server และตอนนี้มันทำงานได้ดี


0

คำสั่งsudo dpkg -rไม่ทำงานสำหรับฉัน ..

ฉันใช้sudo apt-get purge mysql-*เพื่อถอนการติดตั้งหน้าเว็บที่เกี่ยวข้องทั้งหมดแล้วติดตั้งใหม่

โดยการใช้ไซต์ของเรา หมายความว่าคุณได้อ่านและทำความเข้าใจนโยบายคุกกี้และนโยบายความเป็นส่วนตัวของเราแล้ว
Licensed under cc by-sa 3.0 with attribution required.