dpkg: ошибка обработки пакета mysql-server
Когда я пытаюсь установить, возникает ошибка:
dpkg: error processing package mysql-server (--configure):
dependency problems - leaving unconfigured
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
Что это значит. Есть идеи?
17 ответов
dpkg
возвращение кода ошибки 1 не означает ничего конкретного, но обычно оно связано с проблемами зависимости. В вашем случае вы пытались установить две версии / экземпляры одного и того же пакета, т.е. mysql-server
а также mysql-server-5.7
, Поэтому сделайте следующее, чтобы удалить все лишние проблемы с зависимостями и установить работающий пакет mysql.
sudo apt-get clean
sudo apt-get purge mysql*
sudo apt-get update
sudo apt-get install -f
sudo apt-get install mysql-server-5.7
sudo apt-get dist-upgrade
это должно решить проблему под рукой. Но в будущем будьте внимательны с именами пакетов, которые вы добавите после sudo apt-get install
поскольку неправильный список имен пакетов - например, избыточные записи в списке - приводит к невозможности установки любого из пакетов или еще хуже - вы можете даже оказаться в адской глубине #DEPENDENCY-HELL
Все ответы, которые мне удалось найти на этот вопрос, были в форме "очистите вашу установку Mysql и переустановите ее". Но в моем случае у меня уже есть рабочая / активная установка Mysql. Для меня причина, почемуdpkg --configure -a
сбой, потому что Mysql уже установлен. Почему dpkg считает, что для моего уже установленного и обновленного Mysql необходимо запускать сценарий postinstall, я, возможно, никогда не узнаю, но это так.
После долгого поиска ответов я нашел решение, которое должно работать, если есть другие, у которых уже есть работающий Mysql 5.7, и они просто хотят пройти через этот фиктивный сценарий постустановки. Вы можете редактировать сценарий postinstall напрямую как (в Ubuntu):
sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
А затем во второй строке просто добавьте exit 0
а затем запустить dpkg
снова, и вы должны получить что-то вроде:
$ sudo dpkg --configure -a
Setting up mysql-server-5.7 (5.7.28-0ubuntu0.18.04.4) ...
Вы определенно не захотите следовать этим инструкциям, если ваша установка Mysql ранее не была завершена (есть причина, по которой сценарий postinstall настаивает на запуске). Но для тех, у кого dpkg может оказаться в нестабильном состоянии, как у меня, описанное выше может сэкономить много времени на очистку и переустановку уже работающей версии Mysql.
Это должно помочь
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
Если вы используете VPS или подобное, ваша ошибка может быть связана с нехваткой оперативной памяти.
Запуск apt-upgrade, похоже, требует некоторого объема оперативной памяти, поэтому он может принудительно закрыть mysql, поэтому возникает проблема восстановления после ошибки.
Пытаться:
1) Остановите mysql вручную перед любым обновлением apt
sudo /etc/init.d/mysql stop
2) Исправить:
sudo dpkg --configure mysql-server-X.X
(если версия не известна, используйте только mysql-сервер, чтобы узнать (не исправит ошибку)
3) Проверьте:
sudo apt-get upgrade
Запустите mysql вручную, если он не был запущен apt.
Я столкнулся с той же ошибкой из-за проблемы в моем обновлении с ubuntu 18.04 до ubuntu 20.04, то, что я сделал, это получил mariadb вместо этого также убедитесь, что когда вы делаете pruge mysql, если вас попросят удалить dbs в каталоге, скажите ему не удалять dbs, поэтому у вас будут старые базы данных без потери данных
то, что я сделал, было это cmds
sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade
sudo apt-get install mariadb-server
У меня была похожая проблема. Вот так я исправил свой.
- Перезапустите службу MySQL
sudo service mysql restart
- Тогда исправь сломанные установки
sudo apt install -f
Мой ответ от Askubuntu.
Ни один из apt
методы работали для меня, попробуйте это:
Найти процесс блокировки
$ ps -eaf
root 7316 1 0 00:19 ? 00:00:00 /usr/bin/dpkg --status-fd 35 --configure --pending
root 7808 7316 0 00:19 ? 00:00:00 /usr/bin/perl -w /usr/share/debconf/frontend /var/lib/dpkg/info/mysql-se
root 7817 7808 0 00:19 ? 00:00:00 /bin/bash /var/lib/dpkg/info/mysql-server-5.7.postinst configure
mysql 7973 7817 0 00:20 ? 00:00:00 mysqld --user=mysql --init-file=/var/lib/mysql-files/tmp.iNyY06ty0K --so
Убей это
делать sudo kill -9 7973
в основном mysql
один.
Сейчас чистка
sudo apt-get purge mysql-server-5.7 # Or whatever you are trying to purge.
Я пробовал почти все возможные способы, но у меня ничего не получалось. Затем я обнаружил, что проблема, с которой я столкнулся, была связана с менее доступным плунжером. Вы можете проверить свой текущий статус баранаfree -h
(в моем случае доступно было менее 1 ГБ). Чтобы очистить оперативную память, перезагрузите устройство. Затем введите следующие команды
sudo apt-get purge mysql*
sudo apt-get autoremove
sudo apt-get autoclean
sudo apt-get dist-upgrade
затем снова установите mysql-server с помощью
sudo apt-get install mysql-server
В моем случае мне пришлось запустить:
systemctl stop mysql.service
чтобы остановить MySQL, прежде чем вы сможете установить mysql без ошибок, используя:
sudo apt-get install mysql-server
попробуйте это решение, используя aptitude , это заменит все поврежденные файлы.
Это работа над моим 18.04
Я наткнулся на unix-бинарник yes, который невероятно глуп: он просто бесконечно печатает y (попробуйте, вы можете просто запустить yes в своем терминале)
поэтому работает следующее (я использовал это в файле докеров)
yes | apt-get install mysql-community-server
У меня был еще один процесс mysql, работающий в фоновом режиме.(проверьте, включен ли ваш сервер lampp mysql, затем выключите его.) затем попробуйте sudo apt dist-upgrade
если lampmp mysql не работает, проверьте эту команду, ps -eaf , а затем найдите процесс mysql и уничтожьте его по номеру порта sudo kill -9
Проблема может быть намного проще (в моем случае) у меня было неверно сконфигурированное значение в моем файле конфигурации [my.cnf], которое привело к ошибке. После очистки my.cnf mysql-сервер был успешно перезапущен
Если вы работаете над Debian 10, вам необходимо сначала установить GNUPG:
sudo apt-get install gnupg
Вот и все; теперь ты можешь попробоватьdpkg
еще раз.
Чтобы решить проблему зависимости, попробуйте:
sudo apt-get purge
sudo apt-get clean
sudo apt-get check
И переустановите пакет снова: sudo apt-get install mysql-server
,
Источник: Тема: Dpkg: Проблемы с зависимостями - оставлены ненастроенными.
Другие команды, чтобы попробовать:
sudo apt-get install -f
sudo apt-get autoremove
sudo dpkg --configure -a
Связанный: Как я могу Разрешить зависимость dpkg? at Ask Ubuntu.
Также обратите внимание на терминал, который вы используете, если это ZSH, многие команды удаления не будут работать, например: и процесс переустановки завершится ошибкой, чтобы исправить это, просто введите в своем терминале слово bash, чтобы используемый терминал был Bash, запустить
sudo apt-get remove mysql-server mysql-client mysql-common
sudo apt-get autoremove
sudo apt-get autoclean
sudo rm -rf /var/lib/mysql
sudo rm -rf /etc/mysql
Наконец, запустите
Я был в такой же ситуации. После полного удаления MySQL я переустановил его, убил PID, используя порт 3306, и снова переустановил MySQL. Теперь работает.