как переустановить mysql?


38

Обновление программного обеспечения сломало, между прочим, MySQL, и я еще не смог восстановить его.

Подозреваемая причина: у меня был почти полный загрузочный диск; обновление заполнило диск перед завершением и таким образом оставило все в беспорядке. Я дал системе больше диска и переместил / var в ее собственный раздел. Я до сих пор безуспешно пытаюсь восстановить MySQL.

Ниже то, что я пытался до сих пор (все как root). Во-первых, mysql не запускается (443). Попытки исправить (444, 445) не удаются. Попытки удалить mysql и (?) Apparmor не удаются (446, 7, 8). Более энергичная попытка удалить mysql, похоже, увенчалась успехом (449), а предыдущие ошибки больше не видны (450, 1, 2). Mysql не может быть перенастроен, потому что его больше нет (453), но попытка переустановить его возвращает старые сообщения об ошибках, и мы возвращаемся к исходной точке (454).

Я также проверил этот вопрос (хотя в моем случае он не сломался из-за обновления до 12.04: он уже работал на 12.10) Исправление поврежденного пакета myslq-server после обновления до 12.04 и пробовал там предложения (458, 461, 462) безрезультатно.

Что еще я должен сделать?

Это на 3.5.0-25-generic # 39-Ubuntu SMP Пн 25 февраля 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

Ответы:


80

Сначала удалите 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*

Затем переустановите:

sudo apt update
sudo apt install mysql-server
sudo mysql_install_db
sudo /usr/bin/mysql_secure_installation

1
идеальное объяснение!
Постадельмага

Я думаю, стоит упомянуть, что --purgeэто не обязательно то, что нужно, так как это также удалит файлы конфигурации. В частности, в случае с mysql мне интересно, удалит ли он и dbs?
user50849 20.11.14

10
Чтобы удалить конфигурацию и базу данных, вам придется удалить /etc/mysqlи /var/lib/mysql.
Анна ван Россум

2
Вы должны остановить службу MySQL, чтобы удалить MySQL-сервер
Виктор

6
2017-05-20 15:12:01 [WARNING] mysql_install_db устарела. Пожалуйста, рассмотрите возможность перехода на mysqld --initialize
Flaudre

12

В Ubuntu 16.04 способ исправить это в моем случае был ( пожалуйста, сначала сделайте резервную копию БД, базы данных будут потеряны ):

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

(Каким-то образом мои предыдущие звонки apt purge mysql-server, похоже, не увенчались успехом. Я думал, что это apt purge fooбыло эквивалентно apt remove --purge foo...)


Это удаляет все базы данных. Резервное копирование требуется, если какие-либо данные важны.
flickerfly

8

Я получал те же самые ошибки и пробовал большинство шагов, которые вы сделали, с теми же результатами. Следующее, наконец, сработало для меня.

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

После этого mysql устанавливается нормально.


1

Я не уверен, что случилось со мной, но другие решения не работали, он продолжал давать ошибку. Я попробовал это apt-get purge mysql-*, тогда autoremoveи autoclean. После этой установки все было в порядке.

**

Обязательно создайте резервные копии ваших баз данных, приведенная выше команда может также удалить их

**


0

Если вы просто бежите

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

это обновит mysql, и это решило проблему, которая у меня была после обновления до 16.04 lts.

Или просто беги

sudo apt-get install lamp-server^

обновить все серверные пакеты.


0

Для версии MySQL 5.7 я удалил MySQL, как описано выше:

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

И установил его с помощью:

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

Чтобы проверить, все ли работает:

systemctl status mysql.service

источник


-5

Установите phpMyAdmin из репозиториев Ubuntu по умолчанию. Затем запустите:

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

5
Зачем устанавливать phpMyAdmin ? Это совершенно не нужно.
Лусио
Используя наш сайт, вы подтверждаете, что прочитали и поняли нашу Политику в отношении файлов cookie и Политику конфиденциальности.
Licensed under cc by-sa 3.0 with attribution required.