Вопрос или проблема
У меня Ubuntu 20.04. Установка mysql-server завершилась неудачей. Теперь, когда я запускаю sudo apt install -f
, я получаю
$ sudo apt install -f
Чтение списков пакетов... Готово
Формирование дерева зависимостей
Чтение состояния информации... Готово
0 обновлено, 0 новых установлено, 0 удалено и 0 не обновлено.
2 не полностью установлены или удалены.
После этой операции будет использовано 0 Б дополнительного дискового пространства.
Настройка mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
update-alternatives: ошибка: альтернативный путь /etc/mysql/mysql.cnf не существует
dpkg: ошибка обработки пакета mysql-server-8.0 (--configure):
установленный пакет mysql-server-8.0 завершил выполнение постустановочного скрипта с кодом ошибки 2
dpkg: проблемы с зависимостями мешают настройке mysql-server:
mysql-server зависит от mysql-server-8.0; однако:
Пакет mysql-server-8.0 еще не настроен.
dpkg: ошибка обработки пакета mysql-server (--configure):
проблемы с зависимостями - оставлено неконфигурированным
Не записан отчет apport, поскольку сообщение об ошибке указывает на последующую ошибку после предыдущего сбоя.
В процессе обработки были обнаружены ошибки:
mysql-server-8.0
mysql-server
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)
sudo dpkg ––configure –a
тоже не работает. Я не могу установить ни один пакет.
Вопрос отличается от проблемы установки mysql-server-8.0 на Ubuntu 20.04, потому что я абсолютно не могу установить mysql-server. Ему удалось установить его. И мой менеджер пакетов сломался при установке, так что я не могу установить или удалить ничего сейчас.
Загрузите систему в режим восстановления и запустите dpkg, который должен восстановить поврежденные пакеты.
Мне удалось решить проблему менеджера пакетов с решением здесь https://phoenixnap.com/kb/fix-sub-process-usr-bin-dpkg-returned-error-code-1.
Но я все еще не могу запустить базу данных mysql
$ sudo systemctl start mysql
Не удалось запустить mysql.service: единица mysql.service не найдена.
$ sudo service mysqld start
Не удалось запустить mysqld.service: единица mysqld.service не найдена.
$ mysql
ОШИБКА 2002 (HY000): Невозможно подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)
$ sudo mysql_secure_installation
Защита развертывания MySQL-сервера.
Введите пароль для пользователя root:
Ошибка: Невозможно подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)
$ sudo apt install -f
Чтение списков пакетов... Готово
Формирование дерева зависимостей
Чтение состояния информации... Готово
0 обновлено, 0 новых установлено, 0 удалено и 0 не обновлено.
1 не полностью установлен или удален.
После этой операции будет использовано 0 Б дополнительного дискового пространства.
Настройка mysql-server-8.0 (8.0.20-0ubuntu0.20.04.1) ...
Не удалось остановить mysql.service: единица mysql.service не загружена.
invoke-rc.d: initscript mysql, действие "stop" завершилось неудачей.
MySQL был заморожен, чтобы предотвратить повреждение вашей системы. Пожалуйста, посмотрите /etc/mysql/FR
OZEN для получения помощи.
Я думаю, что проблема возникает из-за того, что пакет mysql-server-8.0 не может правильно настроиться из-за отсутствующего файла конфигурации. Так что сначала проверьте наличие поврежденных пакетов
sudo dpkg --audit
вы можете перенастроить пакет
sudo dpkg --configure -a
а затем исправить отсутствующий файл конфигурации.
sudo touch /etc/mysql/mysql.cnf
sudo chmod 644 /etc/mysql/mysql.cnf
! Если вышеуказанные шаги не сработают, возможно, нам потребуется удалить и очистить пакеты MySQL и переустановить их.
sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
sudo apt-get autoremove
sudo apt-get autoclean
А затем вы также можете переустановить сервер mysql =>
sudo apt-get update
sudo apt-get install mysql-server
!!! Если менеджер пакетов все еще сломан, вы можете вручную очистить dpkg =>
sudo rm /var/lib/dpkg/info/mysql-server-8.0.*
sudo rm /var/lib/dpkg/info/mysql-server.*
sudo dpkg --remove --force-remove-reinstreq mysql-server-8.0
sudo dpkg --remove --force-remove-reinstreq mysql-server
Ответ или решение
Для решения проблемы с установкой mysql-server
на Ubuntu 20.04, когда процесс установки завершился неудачей и теперь вы не можете установить ни один пакет, следуйте предложенному ниже алгоритму действий.
1. Анализ ситуации
Вы столкнулись с проблемой, связанной с тем, что mysql-server
не был установлен должным образом. Основной ошибкой является отсутствие файла конфигурации /etc/mysql/mysql.cnf
, что мешает успешной настройке пакета. Это приводит к тому, что система не может завершить установку и конфигурирование MySQL, а, следовательно, и установка новых пакетов становится невозможной.
2. Проверка на наличие испорченных пакетов
Начните с проверки испорченных пакетов:
sudo dpkg --audit
Это поможет вам понять, какие пакеты требуют внимания.
3. Переконфигурация пакетов
Попробуйте переконфигурировать неудачно установленные пакеты:
sudo dpkg --configure -a
Если это не сработает, выполните следующие действия для создания недостающего файла конфигурации.
4. Создание файла конфигурации
Создайте файл конфигурации, чтобы устранить проблему, вызванную его отсутствием:
sudo touch /etc/mysql/mysql.cnf
sudo chmod 644 /etc/mysql/mysql.cnf
После этого снова попробуйте переконфигурировать пакеты:
sudo dpkg --configure -a
5. Удаление и переустановка MySQL
Если предыдущие шаги не помогли, возможно, вам потребуется удалить и полностью очистить пакеты MySQL, а затем установить их заново:
sudo apt-get remove --purge mysql-server mysql-client mysql-common mysql-server-core-* mysql-client-core-*
sudo apt-get autoremove
sudo apt-get autoclean
После этого снова обновите список пакетов и установите MySQL:
sudo apt-get update
sudo apt-get install mysql-server
6. Устранение ошибок в пакетном менеджере
Если ваши попытки удалить или установить пакеты все еще не удаются, вам может потребоваться вручную очистить реестр dpkg:
sudo rm /var/lib/dpkg/info/mysql-server-8.0.*
sudo rm /var/lib/dpkg/info/mysql-server.*
sudo dpkg --remove --force-remove-reinstreq mysql-server-8.0
sudo dpkg --remove --force-remove-reinstreq mysql-server
Эти команды удалят оставшиеся следы от некорректных установок MySQL.
7. Запуск MySQL
После успешной установки вы можете запустить сервер MySQL:
sudo systemctl start mysql
Или проверьте его статус:
sudo systemctl status mysql
8. Заключение
Если вы продолжаете получать сообщения об ошибках, обращайтесь к логам системы для получения дополнительной информации:
journalctl -xe
Этот вывод может указать на более глубокие проблемы с конфигурацией системы или службами.
Следуя этим шагам, вы сможете восстановить работоспособность пакетного менеджера и установить MySQL на вашу систему. Если у вас возникнут дальнейшие вопросы или проблемы, не стесняйтесь обращаться за помощью на специализированные форумы или к сообществу пользователей Ubuntu.