Мое полное обновление прошло хорошо, но у меня осталась критическая проблема, связанная с тем, что mysql-сервер не смог установить себя, и все, что я пробовал, заставило его работать.
Это ошибка, которую я вижу при попытке установить / переустановить ее:
Setting up mysql-server-5.7 (5.7.11-0ubuntu6) ...
Job for mysql.service failed because the control process exited with error code. See "systemctl status mysql.service" and "journalctl -xe" for details.
invoke-rc.d: initscript mysql, action "start" failed.
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.
Processing triggers for systemd (229-4ubuntu4) ...
Processing triggers for ureadahead (0.100.0-19) ...
Errors were encountered while processing:
mysql-server-5.7
mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)
Я попытался полностью удалить его, хотя при этом пытался установить MariaDB из-за зависимостей (?). Любые предложения о том, что я могу сделать, чтобы это исправить, были бы очень кстати.
РЕДАКТИРОВАТЬ: Похоже, я не единственный: https://bugs.launchpad.net/ubuntu/+source/mysql-5.7/+bug/1573279
Ответы:
Отправленные инструкции @ andrew-beerman находятся на правильном пути, хотя они мне не совсем понятны и, похоже, рекомендуют больше, чем необходимо. Я собрал ответ из вышеперечисленного и полезный пост в ветке ошибок.
Вот шаги, которые я предпринял, чтобы исправить это:
Резервное копирование
my.cnf file
в систему/etc/mysql
и удалить или переименовать егоУдалить папку
/etc/mysql/mysql.conf.d/
с помощьюУбедитесь, что у вас нет
my.cnf
файла, спрятанного где-то еще (я сделал это в моем домашнем каталоге!) Или/etc/alternatives/my.cnf
используетсяРезервное копирование и удаление
/etc/mysql/debian.cnf
файлов (не уверен, если нужно, но на всякий случай)В случае, если ваш системный журнал показывает ошибку, такую как «mysqld: Не удается прочитать каталог /etc/mysql/conf.d/», создайте символическую ссылку:
Тогда служба должна быть в состоянии начать с
sudo service mysql start
.Вот и все заработало!
источник
sudo find / -name "my.cnf"
может пригодиться.Сегодня у меня возникла та же проблема, после того, как я попробовал много решений, я обнаружил, что проблема была в команде,
sudo systemctl disable mysql.service
которую я использовал, чтобы отключить автоматический запуск MySQL, поэтому, чтобы онаsudo systemctl enable mysql.service
заработала, я снова включил сервер MySQL, используя команду, и снова запустил процесс обновления и это закончилось отлично.источник
sudo systemctl enable mysql.service
и после этого запуститеsudo apt install -f
.Ваше сообщение об ошибке содержит эту строку:
Однако это
installed post-installation script
не упоминается по имени. После долгих поворотов я узнал, что его зовут (в моем случае)/var/lib/dpkg/info/mysql-server-5.7.postinst
.Откройте этот файл с помощью
sudo vi /var/lib/dpkg/info/mysql-server-5.7.postinst
или предпочитаемого вами редактора.Вверху измените строку 3 (или около того):
set -e
наset -x
, чтобы сохранить файл. (опция-e
«выход при ошибках»-x
означает «явно показанная команда выполнена», предположительно)Выполнить
sudo dpkg --configure -a --log /tmp/dpkg.log
(опция --log не обязательна). Вы также можете просто запустить,apt upgrade
если знаете, что это будет единственный пакет, который будет обновлен.Теперь вы получаете подробный вывод
mysql-server-5.7.postinst
скрипта bash и можете понять, что не так.В моем случае он безуспешно пытался (повторно) запустить
mysql_upgrade
, но это не было необходимо для моей индивидуальной установки MySQL. Я был уверен, что запускал его вручную раньше, успешно, и все было хорошо.Поэтому я закомментировал строку 321 (для более старых выпусков mysqld попробуйте строку 281),
#mysql_upgrade --defaults-file=/etc/mysql/debian.cnf || result=$?
и команда, которая потерпела неудачу раньше,
sudo apt upgrade
(запустите ее снова), успешно завершилась, и dpkg удалил состояние ошибки для этого пакета.Теперь вы можете установить обратно
set -x
кset -e
( как упоминалось выше). И, необязательно, раскомментируйте строку mysql-upgrade.Может потребоваться дополнительная работа, если вы переместили раздел данных MySQL в нестандартное место. Я перенес мой с
/var/lib/mysql/data
другого диска через символическую ссылку. Тогда вам, возможно, придется временно удалить символическую ссылку, доpostinst
манипулирования скриптом. Затем создайте его заново после запуска обновления пакета.После следующего незначительного обновления версии пакета mysqld debian эта проблема со
/var/lib/dpkg/info/mysql-server-5.7.postinst
сценарием может появиться снова.источник
set -e
я смог решить точную проблему - у MySQL не было доступа для пользователя системы Ubuntu, указанного в/etc/mysql/debian.cnf
. Поэтому я добавил этого пользователя в MySQL и предоставил права,dpkg
снова запустился и все заработало!Здесь инструкции исправили это на моем сервере: https://bugs.mysql.com/bug.php?id=72722
источник
dpkg -l | grep mysql
. Это помогло понять направление.sudo apt-get purge <pkg-name>
я исправил это с правкой, но: я использовал символы Unicode для,<
потому что иначе это не показывало бы. Будьте предупреждены, скопируйте эту командуВ моем случае с помощью strace я увидел, что / var / run / mysqld / не существует и mysqld не может создать файл mysqld.sock.
Эти команды решили мою проблему:
В настоящее время:
И MySQL снова работает :)
источник
В моем случае я мог бы решить проблему, добавив
в
/etc/apparmor.d/local/usr.sbin.mysqld
Для более подробной информации взгляните на мой ответ (ChristophS) на stackoverflow.
источник
Я была такая же проблема. Я пытался переустановить mysql несколько раз, но безуспешно.
Я понял, что проблема для меня заключается в том, что другой процесс mysql уже запущен.
Подробно:
После того как я внимательно прочитал, залогинился
/var/log/mysql/error.log
и обнаружил:Похоже, другое приложение уже использовало порт.
Я проверил это с помощью
ps -aux | grep 3306
:И я убил запущенный процесс
sudo kill -15 14706
Затем я начал MySQL:
/etc/init.d/mysql start
Наконец MySQL работает на меня! Надеюсь, это кому-нибудь поможет.
источник
Ни один из ответов на этой странице не работал для меня.
В итоге я перешел на страницу загрузок Oracle , скачал
mysql-apt-config_0.8.8-1_all.deb
и установил MySQL из репозитория Oracle:источник
isntall
->install
опечатка. Глупый ТАК не позволяет мне исправить один символ.У меня возникла проблема на нескольких серверах. Исправлена проблема с запуском apt install phpmyadmin --reinstall
что решило вышеупомянутое (без необходимости трогать mysql впоследствии)
источник