MySQL - ошибка при ...
 

[Решено] MySQL - ошибка при обновлении

2 Записи
1 Пользователи
0 Reactions
1,241 Просмотры
STALKER_SLX
(@stalker_slx)
Записи: 202
Reputable Member
Создатель темы
 

В процессе обновления системы Ubuntu 16.04 появляется ошибка о невозможности обновить MySQL:
"Настраивается пакет mysql-server-5.7 (5.7.26-0ubuntu0.16.04.1) …
mysql_upgrade: Got error: 2002: Can't connect to local MySQL server through socket '/var/run/mysqld/mysqld.sock' (2) while connecting to the MySQL server
Upgrade process encountered error and will not continue.
mysql_upgrade failed with exit status 11
dpkg: ошибка при обработке пакета mysql-server-5.7 (--configure):
 подпроцесс установлен сценарий post-installation возвратил код ошибки 1
dpkg: зависимости пакетов не позволяют настроить пакет mysql-server:
 mysql-server зависит от mysql-server-5.7, однако:
  Пакет mysql-server-5.7 пока не настроен.

dpkg: ошибка при обработке пакета mysql-server (--configure):
 проблемы зависимостей -- оставляем не настроенным
Отчёт apport не записан, так как сообщение об ошибке указывает на повторную ошибку от предыдущего отказа.
                         При обработке следующих пакетов произошли ошибки:
 mysql-server-5.7
 mysql-server
E: Sub-process /usr/bin/dpkg returned an error code (1)"

При этом все остальные пакеты успешно обновились!

На просторах сети нашёл вот такую инструкцию по решению такой же ошибки:
https://900913.ru/2017/10/06/mysqld-sock-not-found/

Делаю так.
1. Ищу файл сокета для MySQL
sudo lsof /var/run/mysqld/mysqld.sock

Получаю вывод:
...
lsof: status error on /run/mysqld/mysqld.sock: No such file or directory
...

2. Создаю папку, в которой должен лежать файл сокета:
sudo mkdir /var/run/mysqld

3. Создаю сам сокет командой mkfifo (хотя сокет -- это тоже файл, создавать его можно только специальной программой -- mkfifo):
sudo mkfifo /var/run/mysqld/mysqld.sock

4. Устанавливаю владельцем папки "/var/run/mysqld" пользователя "mysql"
sudo chown -R mysql /var/run/mysqld

5. Перезапускаю MySQL
sudo systemctl restart mysql

6. Смотрю текущий статус (запущен ли) MySQL
sudo systemctl status mysql

Вывод - запущен.

7. Но при повторном вводе команд обновления ОС получаю опять ту же ошибку:
sudo apt update && apt upgrade
sudo apt dist-upgrade 

То есть, пропадает файл сокета MySQL
...
lsof: status error on /run/mysqld/mysqld.sock: No such file or directory
...

Подскажите, пожалуйста, есть ли способ решить данную проблему без переустановки самой MySQL или ОС?!

Тема была редактированна 5 лет назад 2 раз от STALKER_SLX
 
Размещено : 03.06.2019 22:27
STALKER_SLX
(@stalker_slx)
Записи: 202
Reputable Member
Создатель темы
 

После долгих мучений и страданий как временное решение сделал так. Может кому-то в будущем и пригодится.

1. На официальном сайте разработчиков MySQL нашёл такую доку:

https://dev.mysql.com/doc/mysql-apt-repo-quick-guide/en/

2. Добавил в ОС новый репозиторий от сюда:

https://dev.mysql.com/downloads/repo/apt/

С помощью браузера скачал и сохранил файл «mysql-apt-config_0.8.13-1_all.deb» в домашнюю папку пользователя (на текущий момент у него такое название как я указал, а у Вас уже может бы и другим).

Открыл терминал и ввёл последовательно команду для установки нового репозитория:

sudo dpkg -i mysql-apt-config_0.8.13-1_all.deb

В открывшемся диалоговом окне выбираю строчку «Ok» (самая нижняя), а потом на кнопку «Ok».

Если Вы сохранили файл в другой каталог, то нужно указать путь к нему или просто перейти в ту папку и запустить приведённые выше мной команды.

3. Обновляем список репозиториев в системе:

sudo apt-get update

4. Запускаем процесс установки MySQL:

sudo apt-get install mysql-server

 

Во время данного процесса система попросит Вас ввести пароль суперпользователя для MySQL, а также спросит стоит ли заменять существующий файл конфиг на новый или оставить текущий (тут решайте сами). Я решил заменить и потом уже подправить под свои нужды.

 

5. Теперь посмотрим, запустился ли наш только что установленный MySQL:

sudo service mysql status

Или так:

sudo systemctl status mysql

Если нет, тогда запустим его командой:

sudo service mysql start

Или так:

sudo systemctl start mysql

 

После указанных выше действий MySQL успешно обновился и запустился, таким образом удалось пока устранить ошибку, указанную в названии данной темы!

И что меня совсем удивило – заработал mysqldump!!!

P.S.: не знаю какие траблы с ОС могут меня ждать в будущем после таких действий, но пока ошибок в работе не обнаружил!

Это сообщение было изменено 5 лет назад 2 раз от STALKER_SLX
 
Размещено : 04.06.2019 15:25
Используешь Telegram? Подпишись на канал автора →
This is default text for notification bar