Что означает ошибка при установке mysql-server?

475
26 апреля 2017, 10:35

Debian GNU/Linux 8.7 (jessie)

Хочу установить пакет mysql-server, выполняю команду:

apt-get install mysql-server

В результате получаю ошибку:

E: Sub-process /usr/bin/dpkg returned an error code (1)

Вот полный вывод:

root@dev:~# 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
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/1,846 kB of archives.
After this operation, 32.5 MB of additional disk space will be used.
Do you want to continue? [Y/n] y
Preconfiguring packages ...
(Reading database ... 48232 files and directories currently installed.)
Preparing to unpack .../mysql-server-5.5_5.5.54-0+deb8u1_amd64.deb ...
Aborting downgrade from (at least) 10.1 to 5.5.
If are sure you want to downgrade to 5.5, remove the file
/var/lib/mysql/debian-*.flag and try installing again.
dpkg: error processing archive /var/cache/apt/archives/mysql-server-5.5_5.5.54-0+deb8u1_amd64.deb (--unpack):
 subprocess new pre-installation script returned error exit status 1
Selecting previously unselected package mysql-server.
Preparing to unpack .../mysql-server_5.5.54-0+deb8u1_all.deb ...
Unpacking mysql-server (5.5.54-0+deb8u1) ...
Errors were encountered while processing:
 /var/cache/apt/archives/mysql-server-5.5_5.5.54-0+deb8u1_amd64.deb
E: Sub-process /usr/bin/dpkg returned an error code (1)

Что эта ошибка означает, и как ее побороть?

Answer 1

Aborting downgrade from (at least) 10.1 to 5.5. If are sure you want to downgrade to 5.5, remove the file /var/lib/mysql/debian-*.flag and try installing again.

Собственно, вроде бы всё сказано. Пакетный менеджер обнаружил останки ранее стоявшей версии mysql (вероятно, форка, mariadb судя по номеру версии), при том численно более новой версии. Понижение версии может быть небезопасной операцией и может сломать имеющуюся базу, поэтому пакет отказывается ставиться и требует ручного вмешательства.

Поэтому сначала необходимо выяснить:

  • а не запущена ли уже mariadb? Они будут конфликтовать в дефолтной установке.
  • что там была за база данных и не нужна ли она больше

Если база не нужна - то сделайте бекап /var/lib/mysql и /etc/mysql - пригодятся, если вдруг выяснится, что да, база была нужна. Затем посмотрите в dpkg -l, скорей всего есть куски пакетов от mysql или mariadb не удалённые. Эти пакеты можно удалить через apt-get purge имя_пакета. После этого стоит удалить целиком /var/lib/mysql, если что-то ещё останется. Затем ставить снова mysql.

Если же вы понимаете что делаете и знаете что делать при проблемах (очевидно это не так) - удалите указанные файлы и повторите попытку установки.

Answer 2

У меня эксперементальная система, поэтому можно удалять/устанавливать все что угодно, критических данных для потери нет.

Проблема была в том что в системе были остатки от старых установок других БД, таких как MariaDB, Percona, MySQL. И хотя все предыдущие перечисленные БД были удалены с помощью apt purge, в системе всеравно кое где остались некоторые файлы/директории/скрипты от этих БД. И эти "остатки" каким то образом конфликтовали при новой установки MySQL.

Поэтому я решил эту проблему так: sudo apt-get purge .*mariadb.* .*mysql.* sudo apt-get autoremove

Но самое главное, ищем и удаляем остатки: sudo locate mysql Эта команда выдаст список оставшихся после удаления файлов/директорий/скриптов прошлых БД. Всех их тоже надо удалить.

После этого можно устанавливать MySQL как обычно: sudo apt install mysql-server mysql-client Все должно пройти ОК, без всяких Errors.

READ ALSO
Проверка на пустую ячейку в sql

Проверка на пустую ячейку в sql

Функция проверяет про 3м параметрам на дубликаты и в соответствии вставляет или обновляет записиСуть в том, что если один из параметров приходит...

444
проблема с choosen select

проблема с choosen select

Поставил choosen selectДанные селекта берутся из базы следующим кодом

373
Может ли TomCat удерживать файлы “открытыми”?

Может ли TomCat удерживать файлы “открытыми”?

Всем приветБуду благодарен за разъяснение

334