Як відновити корумповану установку пакету (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

Я оновив, щоб включити помилки з них
Джонатан

Можливо, ви хочете зайти в чат, і ми побачимо, чи зможемо це розібратися.
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*

дуже дякую!! усунення залежностей одна за одною є єдиним варіантом вийти з придатного застрягання
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 (--remove): проблеми залежності - не видалення помилок під час обробки: 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 install openjdk-8-jre openjdk-8-jdk.
Кармін

Мені вдалося знайти процес, який раніше блокував будь-яку мою спробу очищення оновлення mysql, адже я зупинив екземпляр, що працює в моїй системі, і тоді я очистився, як з іншого пов'язаного рішення. Після цього я переконався, що моя система була оновлена. Дійсно, я дізнався, що я пропускаю багато оновлень. Після цього зараз встановлення java 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 та здатністю / apt-get?


Видалення цих пакетів libmysqlclient, навіть якщо інші пакети покладаються на них, і очищення всього зробило свою справу. Хоча зараз я отримую помилки mysql_upgrade.
skerit

У мене ніколи не виникало помилок mysql_upgrade. Але вам, можливо, доведеться видалити ще більше пакетів. Я думаю, це залежить від того, який пакет пошкодився. Існує спосіб пошуку всіх встановлених пакетів, пов'язаних з mysql, але я забуваю як. Я думаю, що це команда зі списку dpkg, прокладена через grep
Джонатан

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

Дякую! Я годинами шукав рішення, і це єдина відповідь!
мирза

1
Це працювало для мене. Цей підручник також допоміг.
nwaweru

4

Після очищення, mysqlяк було показано вище, ви повинні встановити mysql таким чином:

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

При встановленні таким чином у вас не буде помилки встановлення.


це працює для мене
користувач1735921

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!


Спасибі , що працювали для мене
Нидзе

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-*для видалення всіх видалених сторінок, а потім перевстановлював їх

Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.