jak ponownie zainstalować mysql?

38

Aktualizacja oprogramowania zepsuła się, między innymi, mysql i nie udało mi się jeszcze go odzyskać.

Podejrzewana przyczyna: miałem prawie pełny dysk startowy; uaktualnienie zapełniło dysk przed jego ukończeniem, a tym samym pozostawiło wszystko w chaosie. Dałem systemowi więcej dysku i przeniosłem / var na własną partycję. Nadal bezskutecznie próbuję ożywić mysql.

Poniżej próbowałem do tej pory (wszystkie jako root). Po pierwsze, mysql nie uruchamia się (443). Próby naprawy (444, 445) kończą się niepowodzeniem. Próby usunięcia mysql i (?) Apparmor nie powiodły się (446, 7, 8). Bardziej energiczna próba usunięcia mysql wydaje się udana (449) i poprzednie błędy nie są już widoczne (450, 1, 2). Nie można ponownie skonfigurować MySQL, ponieważ już go nie ma (453), ale próba jego ponownej instalacji zwraca stare komunikaty o błędach i wracamy do pierwszego (454).

Sprawdziłem również to pytanie (chociaż w moim przypadku nie uległo ono awarii z powodu aktualizacji do 12.04: już działało w dniu 12.10) Naprawianie uszkodzonego pakietu myslq-server po aktualizacji do 12.04 i wypróbowałem tam sugestie (458, 461, 462) bezskutecznie.

Co jeszcze powinienem zrobić?

To jest na 3.5.0-25-generic # 39-Ubuntu SMP Mon 25 lutego 18:26:58 UTC 2013 x86_64 x86_64 x86_64 GNU / Linux

    443  service mysql start
         start: Job failed to start

    444  dpkg-reconfigure mysql-server-5.5
         /usr/sbin/dpkg-reconfigure: mysql-server-5.5
         is broken or not fully installed

    445  apt-get -f install
         ...
         Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
         start: Job failed to start
         invoke-rc.d: initscript mysql, action "start" failed.
         dpkg: error processing mysql-server-5.5 (--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.5; however:
         Package mysql-server-5.5 is not configured yet.
         dpkg: error processing 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.5
           mysql-server
         E: Sub-process /usr/bin/dpkg returned an error code (1)

    446  apt-get remove mysql-server
         ...
         Removing mysql-server ...
         Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
         start: Job failed to start
         invoke-rc.d: initscript mysql, action "start" failed.
         dpkg: error processing mysql-server-5.5 (--configure):
         subprocess installed post-installation script
         returned error exit status 1
         No apport report written because MaxReports is reached already
         Errors were encountered while processing:
           mysql-server-5.5
         E: Sub-process /usr/bin/dpkg returned an error code (1)


    447  apt-get remove apparmor
         ...
         Package 'apparmor' is not installed, so not removed
         0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
         1 not fully installed or removed.
         After this operation, 0 B of additional disk space will be used. 
         Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
         start: Job failed to start
         invoke-rc.d: initscript mysql, action "start" failed.
         dpkg: error processing mysql-server-5.5 (--configure):
         subprocess installed post-installation script
         returned error exit status 1
         Errors were encountered while processing:
           mysql-server-5.5
         E: Sub-process /usr/bin/dpkg returned an error code (1)


    448  apt-get remove mysql-server
         Reading package lists... Done
         Building dependency tree       
         Reading state information... Done
         Package 'mysql-server' is not installed, so not removed
         0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.
         1 not fully installed or removed.
         After this operation, 0 B of additional disk space will be used.
         Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
         start: Job failed to start
         invoke-rc.d: initscript mysql, action "start" failed.
         dpkg: error processing mysql-server-5.5 (--configure):
         subprocess installed post-installation script
         returned error exit status 1
         Errors were encountered while processing:
           mysql-server-5.5
         E: Sub-process /usr/bin/dpkg returned an error code (1)

    449  dpkg -r mysql-server-5.5
         (Reading database ... 322156 files and directories
         currently installed.)
         Removing mysql-server-5.5 ...
         Processing triggers for man-db ...
         Processing triggers for ureadahead ...

    450  apt-get remove mysql-server
         Reading package lists... Done
         Building dependency tree        
         Reading state information... Done
         Package 'mysql-server' is not installed, so not removed
         0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

    451  apt-get remove apparmor
         Reading package lists... Done
         Building dependency tree       
         Reading state information... Done
         Package 'apparmor' is not installed, so not removed
         0 upgraded, 0 newly installed, 0 to remove and 0 not upgraded.

    452  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.

    453  dpkg-reconfigure mysql-server-5.5
         /usr/sbin/dpkg-reconfigure: mysql-server-5.5 is broken
         or not fully installed

    454  apt-get install mysql-server
         Reading package lists... Done
         Building dependency tree       
         Reading state information... Done
         The following extra packages will be installed:
           mysql-server-5.5
         Suggested packages:
           tinyca mailx
         The following NEW packages will be installed:
           mysql-server mysql-server-5.5
         0 upgraded, 2 newly installed, 0 to remove and 0 not upgraded.
         Need to get 0 B/8,851 kB of archives.
         After this operation, 32.8 MB of additional disk space
         will be used.
         Do you want to continue [Y/n]? 
         Preconfiguring packages ...
         Selecting previously unselected package mysql-server-5.5.
         (Reading database ... 322081 files and directories
         currently installed.)
         Unpacking mysql-server-5.5 (from 
         .../mysql-server-5.5_5.5.29-0ubuntu0.12.10.1_amd64.deb) ...
         Selecting previously unselected package mysql-server.
         Unpacking mysql-server (from 
         .../mysql-server_5.5.29-0ubuntu0.12.10.1_all.deb) ...
         Processing triggers for ureadahead ...
         Processing triggers for man-db ...
         Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
         start: Job failed to start
         invoke-rc.d: initscript mysql, action "start" failed.
         dpkg: error processing mysql-server-5.5 (--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.5; however:
         Package mysql-server-5.5 is not configured yet.
         dpkg: error processing 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.5
           mysql-server
         E: Sub-process /usr/bin/dpkg returned an error code (1)


    458  apt-get remove --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, 116 kB disk space will be freed.
         Do you want to continue [Y/n]? 
         (Reading database ... 322159 files and directories
         currently installed.)
         Removing mysql-server ...
         Setting up mysql-server-5.5 (5.5.29-0ubuntu0.12.10.1) ...
         start: Job failed to start
         invoke-rc.d: initscript mysql, action "start" failed.
         dpkg: error processing mysql-server-5.5 (--configure):
         subprocess installed post-installation script
         returned error exit status 1
         Errors were encountered while processing:
           mysql-server-5.5
         E: Sub-process /usr/bin/dpkg returned an error code (1)

    461  touch /etc/apparmor.d/local/usr.sbin.mysqld
         (no output)

    462  service mysql start
         start: Job failed to start
st01
źródło

Odpowiedzi:

80

Najpierw usuń MySQL:

sudo apt purge mysql-server mysql-client mysql-common
sudo apt autoremove
sudo mv -iv /var/lib/mysql /var/tmp/mysql-backup
sudo rm -rf /var/lib/mysql*

Następnie zainstaluj ponownie:

sudo apt update
sudo apt install mysql-server
sudo mysql_install_db
sudo /usr/bin/mysql_secure_installation
Joren
źródło
1
doskonałe wyjaśnienie!
Postadelmaga,
Myślę, że warto wspomnieć, że --purgeniekoniecznie jest to, czego się chce, ponieważ spowoduje to również usunięcie plików konfiguracyjnych. W szczególności w przypadku mysql zastanawiam się, czy usunąłby również dbs?
user50849,
10
Aby usunąć konfigurację i bazę danych, będziesz musiał usunąć /etc/mysqli /var/lib/mysql.
Anne van Rossum,
2
Powinieneś zatrzymać usługę mysql, aby usunąć serwer mysql
Viktor,
5
2017-05-20 15:12:01 [OSTRZEŻENIE] mysql_install_db jest przestarzały. Proszę rozważyć przejście na mysqld --initialize
Flaudre
12

W Ubuntu 16.04 sposobem na naprawienie go w moim przypadku było ( najpierw wykonaj kopię zapasową baz danych, bazy danych zostaną utracone ):

sudo apt remove --purge mysql-server mysql-client mysql-common
sudo apt autoremove
sudo mv -iv /var/lib/mysql /var/tmp/mysql-backup
sudo rm -rf /var/lib/mysql*
sudo apt install mysql-server

(Jakoś moje poprzednie wezwania do apt purge mysql-servernie wydawały się udane. Myślałem, że apt purge footo równoważne z apt remove --purge foo...)

knocte
źródło
Spowoduje to usunięcie wszystkich baz danych. Kopia zapasowa jest wymagana, jeśli jakiekolwiek dane są ważne.
flickerfly
8

Otrzymałem dokładnie te same błędy i wypróbowałem większość kroków, które zrobiłeś, z tymi samymi wynikami. Następujące wreszcie działało dla mnie.

apt-get purge mysql-server mysql-client mysql-common mysql-client-5.5 mysql-server-5.5

Następnie mysql instaluje się normalnie.

Tom Damon
źródło
1

Nie jestem pewien, co było w moim przypadku, ale inne rozwiązania nie działały, wciąż pojawiał się błąd. Próbowałem tego apt-get purge mysql-*wtedy autoremovei autoclean. Po tej instalacji wszystko było w porządku.

**

Należy wykonać kopie zapasowe baz danych, powyższe polecenie może je również usunąć

**

dav
źródło
0

Jeśli po prostu uciekniesz

sudo apt-get update
sudo apt-get install mysql-server

zaktualizuje mysql i to naprawiło problem, który miałem po aktualizacji do 16.04 lts.

Lub po prostu biegnij

sudo apt-get install lamp-server^

zaktualizować wszystkie pakiety serwerów.

użytkownik558503
źródło
0

W przypadku wersji MySQL 5.7 usunąłem MySQL zgodnie z wcześniejszym opisem:

sudo apt purge mysql-server mysql-client mysql-common
sudo apt autoremove
sudo rm -rf /var/lib/mysql*

I zainstalowałem go z pomocą:

sudo apt-get update
sudo apt-get install mysql-server
mysql_secure_installation

Aby sprawdzić, czy wszystko działa:

systemctl status mysql.service

źródło

Viktorminator
źródło
-5

Zainstaluj phpMyAdmin z domyślnych repozytoriów Ubuntu. Następnie uruchomić:

dpkg --configure mysql-server-5.5
apt-get purge mysql-server mysql-client mysql-common mysql-client-5.5 mysql-server-5.5
apt-get autoremove
apt-get autoclean
apt-get update
apt-get install  mysql-server
service mysql restart
użytkownik277883
źródło
5
Po co instalować phpMyAdmin ? To jest całkowicie niepotrzebne.
Lucio