Вопрос или проблема
APT не может обновить mySQL за меня. Я считаю, что ошибка 1045 связана с данными для входа. Я могу выполнить mysql_upgrade -uroot -p и завершить это вручную, но как мне сказать apt, что это сделано, пожалуйста, прекрати пытаться?
Настройка mysql-server-5.7 (5.7.24-0ubuntu0.16.04.1) ...
update-alternatives: предупреждение: принудительная переустановка альтернативы /etc/mysql/mysql.cnf, поскольку группа ссылок my.cnf повреждена
update-alternatives: предупреждение: не заменяется /etc/mysql/my.cnf ссылкой
mysql_upgrade: Получена ошибка: 1045: Неизвестная ошибка 1045 при подключении к серверу MySQL
Процесс обновления столкнулся с ошибкой и не будет продолжен.
mysql_upgrade завершился с выходным статусом 11
dpkg: ошибка при обработке пакета mysql-server-5.7 (--configure):
скрипт постустановочной конфигурации возвратил ошибку с кодом выхода 1
dpkg: проблемы с зависимостями предотвращают конфигурацию mysql-server:
mysql-server зависит от mysql-server-5.7; однако:
Пакет mysql-server-5.7 еще не настроен.
dpkg: ошибка при обработке пакета mysql-server (--configure):
проблемы с зависимостями - оставлено без конфигурации
Произошли ошибки при обработке:
mysql-server-5.7
mysql-server
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
Мне пришлось воссоздать пользователя debian-sys-maint с паролем из /etc/mysql/debian.cnf
GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'PASSWORD';
Если вы отключили службу mysql при запуске, сценарий обновления не может завершить процесс обновления. Поэтому вы можете включить службу mysql при запуске и обновить ее следующим образом,
sudo systemctl enable mysql.service
sudo apt update
sudo apt upgrade -y
Если вы хотите отключить службу mysql при запуске, вы можете отключить ее следующим образом,
sudo systemctl disable mysql.service
Удаление iblogfile0
и iblogfile1
помогло мне, когда MySQL не запускался после обновления.
Ответ или решение
Причины и решения проблемы с завершением обновления MySQL 5.7
Если вы столкнулись с проблемой завершения обновления MySQL 5.7 через APT, это может быть связано с ошибками конфигурации, проблемами с доступом или зависимостями пакетов. Ниже представлены основные причины возникновения данной проблемы и возможные способы их решения.
Основные ошибки, связанные с обновлением MySQL
-
Ошибка 1045: Эта ошибка возникает, если вы не можете подключиться к MySQL-серверу, используя предоставленные учетные данные. В вашем случае, рекомендуется проверить, правильно ли вы указали пароль для пользователя
root
. Используяmysql_upgrade -uroot -p
, вы можете вручную завершить процесс обновления, но вам будет необходимо сообщить APT, что обновление завершено. -
Проблемы с пользователем
debian-sys-maint
: Для успешного завершения обновления вам необходимо убедиться, что пользовательdebian-sys-maint
существует и имеет корректные привилегии. Вы можете восстановить его, воспользовавшись следующей командой:GRANT ALL PRIVILEGES ON *.* TO 'debian-sys-maint'@'localhost' IDENTIFIED BY 'PASSWORD';
Убедитесь, что вы используете пароль, указанный в файле
/etc/mysql/debian.cnf
. -
Проблемы с системными службами: Если служба MySQL отключена при старте системы, это может привести к сбою обновления. В этом случае выполните следующие команды для включения службы:
sudo systemctl enable mysql.service sudo systemctl start mysql.service
После этого снова попробуйте обновить MySQL:
sudo apt update sudo apt upgrade -y
-
Ошибки при обработке пакетов: Сообщения, подобные
subprocess installed post-installation script returned error exit status 1
, указывают на зависимость пакетов. В этом случае вам может понадобиться удалить проблемный пакет и установить его заново:sudo apt remove mysql-server-5.7 sudo apt install mysql-server-5.7
-
Удаление файлов журнала: Если MySQL не запускается после обновления, попробуйте удалить или переименовать файлы
ib_logfile0
иib_logfile1
, находящиеся в директории данных MySQL. Это может помочь решить проблему с запуском:sudo rm /var/lib/mysql/ib_logfile* sudo systemctl start mysql.service
Завершение обновления и предотвращение повторной попытки установки
Чтобы сообщить APT, что обновление завершено, и он не должен повторять попытку, выполните следующую команду:
sudo dpkg --configure -a
Это восстановит состояние пакетов и закончит процесс настройки.
Заключительные рекомендации
Если после всех вышеуказанных шагов проблема все еще сохраняется, рекомендуется:
- Проверить логи MySQL на наличие дополнительных ошибок, которые могут дать указание на источник проблемы. Логи обычно находятся по пути
/var/log/mysql/error.log
. - Убедиться, что все зависимости для MySQL установлены корректно, и нет конфликтующих пакетов в системе.
Следуя этим шагам, вы сможете успешно завершить обновление MySQL 5.7 и устранить все возможные проблемы, связанные с конфигурацией и зависимостями системы.