В какой-то момент я получил ошибку: конфигурация MySQL не найдена. Как это исправить?

Вопрос или проблема

В какой-то момент мой сервер MySQL перестал работать (я установил свой домашний kubuntu 22.04 несколько месяцев назад)

Я проверил команды :

# mysql
ERROR 2002 (HY000): Не удается подключиться к локальному серверу MySQL через сокет '/var/run/mysqld/mysqld.sock' (2)
root@master-at-home:/path# mysql -h 127.0.0.1 -P 3306 -u root
ERROR 2003 (HY000): Не удается подключиться к серверу MySQL на '127.0.0.1:3306' (111)
root@master-at-home:/path# sudo service mysql start
Работа для mysql.service не удалась, потому что контрольный процесс завершился с кодом ошибки.
Смотрите "systemctl status mysql.service" и "journalctl -xeu mysql.service" для подробностей.
root@master-at-home:/path# systemctl status mysql.service
× mysql.service - MySQL Community Server
Загружен: загружен (/lib/systemd/system/mysql.service; включен; предустановленный производителем: включен)
Активен: не выполнено (Результат: код выхода) с Вс 2024-10-27 09:33:42 EET; 10с назад
Процесс: 32412 ExecStartPre=/usr/share/mysql/mysql-systemd-start pre (код=выход, статус=1/НЕУДАЧА)
ЦП: 2мс

master-at-home systemd[1]: mysql.service: Запланирована повторная попытка перезагрузки, счетчик перезагрузки равен 5.
master-at-home systemd[1]: Остановлен MySQL Community Server.
master-at-home systemd[1]: mysql.service: Запрос на запуск повторяется слишком быстро.
master-at-home systemd[1]: mysql.service: Не удалось с результатом 'код выхода'.
master-at-home systemd[1]: Не удалось запустить MySQL Community Server.
root@master-at-home:/path# journalctl -xeu mysql.service
░░ Идентификатор задания 3931, результат выполнения - успешно.
master-at-home systemd[1]: Запуск MySQL Community Server...
░░ Тема: Начат запуск задания для юнита mysql.service
░░ Определено: systemd
░░ Поддержка: http://www.ubuntu.com/support
░░
░░ Начат запуск задания для юнита mysql.service.
░░
░░ Идентификатор задания 3931.
master-at-home mysql-systemd-start[32412]: Конфигурация MySQL не найдена по адресу /etc/mysql/my.cnf. Пожалуйста, создайте его.
master-at-home systemd[1]: mysql.service: Контрольный процесс завершился, код=выход, статус=1/НЕУДАЧА
░░ Тема: Процесс юнита завершился
░░ Определено: systemd
░░ Поддержка: http://www.ubuntu.com/support
░░
░░ Процесс ExecStartPre= для юнита mysql.service завершился.
░░
░░ Код выхода процесса 'выход' и статус выхода 1.
master-at-home systemd[1]: mysql.service: Не удалось с результатом 'код выхода'.
░░ Тема: Юнит завершился неудачно
░░ Определено: systemd
░░ Поддержка: http://www.ubuntu.com/support
░░
░░ Юнит mysql.service вошел в состояние 'не удалось' с результатом 'код выхода'.
master-at-home systemd[1]: Не удалось запустить MySQL Community Server.
░░ Тема: Запуск задания для юнита mysql.service завершился неудачей
░░ Определено: systemd
░░ Поддержка: http://www.ubuntu.com/support
░░
░░ Запуск задания для юнита mysql.service завершился неудачей.
░░
░░ Идентификатор задания 3931 и результат выполнения - неудача.
master-at-home systemd[1]: mysql.service: Запланирована повторная попытка перезагрузки, счетчик перезагрузки равен 5.
░░ Тема: Автоматическая перезагрузка юнита была запланирована
░░ Определено: systemd
░░ Поддержка: http://www.ubuntu.com/support
░░
░░ Автоматическая перезагрузка юнита mysql.service была запланирована, в результате
░░ настроенного параметра Restart= для юнита.
master-at-home systemd[1]: Остановлен MySQL Community Server.
░░ Тема: Завершение работы задания для юнита mysql.service завершилось
░░ Определено: systemd
░░ Поддержка: http://www.ubuntu.com/support
░░
░░ Завершение работы задания для юнита mysql.service завершилось.
░░
░░ Идентификатор задания 4065 и результат выполнения - успешно.
master-at-home systemd[1]: mysql.service: Запрос на запуск повторяется слишком быстро.
master-at-home systemd[1]: mysql.service: Не удалось с результатом 'код выхода'.
░░ Тема: Юнит завершился неудачно
░░ Определено: systemd
░░ Поддержка: http://www.ubuntu.com/support
░░
░░ Юнит mysql.service вошел в состояние 'не удалось' с результатом 'код выхода'.
master-at-home systemd[1]: Не удалось запустить MySQL Community Server.
░░ Тема: Запуск задания для юнита mysql.service завершился неудачей
░░ Определено: systemd
░░ Поддержка: http://www.ubuntu.com/support
░░
░░ Запуск задания для юнита mysql.service завершился неудачей.
░░
░░ Идентификатор задания 4065 и результат выполнения - неудача.

Я нашел строку :

 master-at-home mysql-systemd-start[32412]: Конфигурация MySQL не найдена по адресу /etc/mysql/my.cnf. Пожалуйста, создайте его.

У меня вообще нет подкаталога /etc/mysql/. Я не знаю, почему так и как восстановить /etc/mysql/my.cnf в моей ОС ?

uname -a
Linux master-at-home 6.5.0-35-generic #35~22.04.1-Ubuntu SMP PREEMPT_DYNAMIC Вт Май  7 09:00:52 UTC 2 x86_64 x86_64 x86_64 GNU/Linux

Я решил обновить свою ОС, но получил следующие ошибки в сообщениях :

path# sudo apt-get update
Hit:1 https://artifacts.elastic.co/packages/8.x/apt stable InRelease
Hit:2 http://ua.archive.ubuntu.com/ubuntu jammy InRelease
Hit:3 https://dl.google.com/linux/chrome/deb stable InRelease
Hit:4 https://deb.nodesource.com/node_18.x nodistro InRelease
Hit:5 https://ppa.launchpadcontent.net/giuspen/ppa/ubuntu jammy InRelease
Hit:6 https://ppa.launchpadcontent.net/ondrej/php/ubuntu jammy InRelease
Hit:7 https://ppa.launchpadcontent.net/openswoole/ppa/ubuntu jammy InRelease
Чтение списков пакетов... Готово
path# sudo apt-get upgrade
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Расчет обновления... Готово
Следующие пакеты были удержаны:
  php-common php-mcrypt php-mongodb php8.2-mongodb php8.3-mcrypt php8.3-mongodb
0 обновлено, 0 ново установлено, 0 к удалению и 6 не обновлено.
3 не полностью установлены или удалены.
После этой операции 0 Б дополнительного дискового пространства будет использовано.
Вы хотите продолжить? [Y/n] Y
Настройка mysql-server-8.0 (8.0.28-0ubuntu4) ...
update-alternatives: ошибка: альтернативный путь /etc/mysql/mysql.cnf не существует
dpkg: ошибка при обработке пакета mysql-server-8.0 (--configure):
 установлен скрипт постустановки пакета mysql-server-8.0 завершился с кодом выхода 2
Настройка elasticsearch (8.15.3) ...
/usr/share/elasticsearch/bin/elasticsearch-env: строка 78: source: /etc/default/elasticsearch: является директорией
dpkg: ошибка при обработке пакета elasticsearch (--configure):
 установлен скрипт постустановки пакета elasticsearch завершился с кодом выхода 1
dpkg: проблемы с зависимостями не позволяют настроить mysql-server:
 mysql-server зависит от mysql-server-8.0; однако:
  Пакет mysql-server-8.0 еще не настроен.

dpkg: ошибка при обработке пакета mysql-server (--configure):
 проблемы с зависимостями - оставлено неконфигурированным
Нет отчета apport, так как сообщение об ошибке указывает на то, что это ошибка последующего выполнения.
Ошибки возникли при обработке:
 mysql-server-8.0
 elasticsearch
 mysql-server
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)

Связаны ли эти проблемы? Как это можно исправить?

У меня стандартная установка MySQL, без каких-либо специальных параметров…

ОБНОВЛЕНО :

path# sudo apt install --reinstall mysql-server-8.0
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
0 обновлено, 0 ново установлено, 1 переустановлено, 0 к удалению и 6 не обновлено.
3 не полностью установлены или удалены.
После этой операции 0 Б дополнительного дискового пространства будет использовано.
E: Внутренняя ошибка, нет имени файла для mysql-server-8.0:amd64
path# sudo apt install --reinstall mysql-server
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
0 обновлено, 0 ново установлено, 1 переустановлено, 0 к удалению и 6 не обновлено.
3 не полностью установлены или удалены.
После этой операции 0 Б дополнительного дискового пространства будет использовано.
E: Внутренняя ошибка, нет имени файла для mysql-server:amd64

ОБНОВЛЕНО # 2:

# sudo apt purge mysql-server-8.0 && sudo apt install --reinstall mysql-server-8.0
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Следующие пакеты были автоматически установлены и больше не нужны:
libcgi-fast-perl libcgi-pm-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-template-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils
Используйте 'sudo apt autoremove', чтобы удалить их.
Следующие пакеты будут УДАЛЕНЫ:
mysql-server* mysql-server-8.0*
0 обновлено, 0 ново установлено, 2 к удалению и 6 не обновлено.
3 не полностью установлены или удалены.
После этой операции будет освобождено 1 713 кБ дискового пространства.
Вы хотите продолжить? [Y/n] Y
(Чтение базы данных ... 288059 файлов и директорий в настоящее время установлено.)
Удаление mysql-server (8.0.28-0ubuntu4) ...
Удаление mysql-server-8.0 (8.0.28-0ubuntu4) ...
Настройка elasticsearch (8.15.3) ...
/usr/share/elasticsearch/bin/elasticsearch-env: строка 78: source: /etc/default/elasticsearch: является директорией
dpkg: ошибка при обработке пакета elasticsearch (--configure):
 установлен скрипт постустановки пакета elasticsearch завершился с кодом выхода 1
Ошибки возникли при обработке:
elasticsearch
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)

У меня все еще нет подкаталога /etc/mysql/ вообще.

ОБНОВЛЕНО # 3:

Я вышел из toot :

whoami
master

Запустил команды :

master@master-at-home:path$ sudo apt purge elasticsearch && sudo apt install mysql-server-8.0
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Следующие пакеты были автоматически установлены и больше не нужны:
libcgi-fast-perl libcgi-pm-perl libfcgi-bin libfcgi-perl libfcgi0ldbl libhtml-template-perl mecab-ipadic mecab-ipadic-utf8 mecab-utils
Используйте 'sudo apt autoremove', чтобы удалить их.
Следующие пакеты будут УДАЛЕНЫ:
elasticsearch*
0 обновлено, 0 ново установлено, 1 к удалению и 6 не обновлено.
1 не полностью установлено или удалено.
После этой операции будет освобождено 1 179 МБ дискового пространства.
Вы хотите продолжить? [Y/n] Y
(Чтение базы данных ... 288042 файлов и директорий в настоящее время установлено.)
Удаление elasticsearch (8.15.3) ...
Остановка службы elasticsearch... ОК
(Чтение базы данных ... 286653 файлов и директорий в настоящее время установлено.)
Очистка конфигурационных файлов для elasticsearch (8.15.3) ...
dpkg: предупреждение: elasticsearch: conffile '/etc/default/elasticsearch' не является обычным файлом или символической ссылкой (= '/etc/default/elasticsearch')
Удаление каталога автоматической настройки безопасности... ОК
dpkg: предупреждение: при удалении elasticsearch каталог '/var/lib/elasticsearch' не пуст, поэтому не удален
dpkg: предупреждение: при удалении elasticsearch каталог '/usr/lib/systemd/system' не пуст, поэтому не удален
Чтение списков пакетов... Готово
Построение дерева зависимостей... Готово
Чтение информации о состоянии... Готово
Предлагаемые пакеты:
tinyca
Следующий НОВЫЙ пакет будет установлен:
mysql-server-8.0
0 обновлено, 1 ново установлено, 0 к удалению и 6 не обновлено.
Необходимо получить 0 Б/1 386 кБ архивов.
После этой операции будет использовано 1 603 кБ дополнительного дискового пространства.
Предварительная настройка пакетов ...
(Чтение базы данных ... 286641 файлов и директорий в настоящее время установлено.)
Подготовка к распаковке .../mysql-server-8.0_8.0.28-0ubuntu4_amd64.deb ...
grep: /etc/mysql/: Нет такого файла или директории
Распаковка mysql-server-8.0 (8.0.28-0ubuntu4) ...
Настройка mysql-server-8.0 (8.0.28-0ubuntu4) ...
update-alternatives: ошибка: альтернативный путь /etc/mysql/mysql.cnf не существует
dpkg: ошибка при обработке пакета mysql-server-8.0 (--configure):
 установлен скрипт постустановки пакета mysql-server-8.0 завершился с кодом выхода 2
Ошибки возникли при обработке:
mysql-server-8.0
E: Подпроцесс /usr/bin/dpkg вернул код ошибки (1)

Создание /etc/mysql/mysql.cnf (даже пустого файла) и переустановка MySQL должно сработать:

sudo touch /etc/mysql/mysql.cnf &&
sudo chmod 0644 /etc/mysql/mysql.cnf &&
sudo apt install --reinstall mysql-server-8.0

После этого я рекомендую восстановить его в стандартную версию файла, так как /etc/mysql/mysql.cnf обычно включает содержимое /etc/mysql/conf.d и /etc/mysql/mysql.conf.d;

Вот стандартный /etc/mysql/mysql.cnf для MySQL 8.0.39 на Ubuntu 24.04.2 (хотя я не думаю, что этот файл когда-либо меняется между версиями – не забудьте выполнить sudo systemctl restart mysql после восстановления файла):

#
# Конфигурационный файл сервера базы данных MySQL.
#
# Вы можете скопировать это в один из:
# - "/etc/mysql/my.cnf" для установки глобальных параметров,
# - "~/.my.cnf" для установки параметров, специфичных для пользователя.
# 
# Можно использовать все длинные параметры, которые поддерживает программа.
# Запустите программу с --help, чтобы получить список доступных опций и с
# --print-defaults, чтобы увидеть, какие она действительно поймет и использует.
#
# Для объяснений см. 
# http://dev.mysql.com/doc/mysql/en/server-system-variables.html

#
# * ВАЖНО: Дополнительные настройки, которые могут переопределить настройки из этого файла!
#   Файлы должны заканчиваться на '.cnf', в противном случае они будут игнорироваться.
#

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Ответ или решение

Ошибка "MySQL configuration not found": как её исправить

Ошибка "MySQL configuration not found" указывает на то, что сервер MySQL не может найти свой конфигурационный файл. Ниже описаны шаги, которые помогут устранить эту проблему на вашей системе Kubuntu 22.04.

1. Проверка состояния MySQL

В первую очередь, нужно убедиться в текущем состоянии службы MySQL. Для этого используйте команду:

systemctl status mysql.service

Как видно из вашей информации, служба не запускается из-за отсутствия файла конфигурации /etc/mysql/my.cnf, что и вызывает ошибку.

2. Создание конфигурационного файла

Поскольку вы не нашли директорию /etc/mysql/, необходимо создать её и сам файл конфигурации:

sudo mkdir -p /etc/mysql
sudo touch /etc/mysql/my.cnf
sudo chmod 0644 /etc/mysql/my.cnf

3. Вставка стандартного содержимого

Файл my.cnf обычно содержит важные параметры, которые MySQL использует при старте. Ниже приведено стандартное содержимое для файла my.cnf, который актуален для MySQL 8.0:

#
# The MySQL database server configuration file.
#

# Additional settings that can override those from this file!
# The files must end with '.cnf', otherwise they'll be ignored.

!includedir /etc/mysql/conf.d/
!includedir /etc/mysql/mysql.conf.d/

Вставьте это содержимое в только что созданный файл:

echo -e "#\n# The MySQL database server configuration file.\n#\n!includedir /etc/mysql/conf.d/\n!includedir /etc/mysql/mysql.conf.d/" | sudo tee /etc/mysql/my.cnf

4. Переустановка MySQL

Теперь можно попытаться переустановить MySQL, чтобы убедиться, что все зависимости и файлы настроены корректно:

sudo apt install --reinstall mysql-server-8.0

При переустановке, система увидит созданный файл конфигурации и должна установить MySQL без ошибок.

5. Запуск MySQL

После успешной переустановки, вы можете запустить MySQL:

sudo systemctl start mysql

Затем проверьте статус службы ещё раз:

systemctl status mysql.service

6. Дополнительные проверки и очистка

Если после выполнения всех шагов проблема с ошибками при установке MySQL и другими компонентами (такими как Elasticsearch) всё ещё сохраняется, рекомендуется удалить несоответствующие пакеты:

sudo apt purge elasticsearch
sudo apt autoremove

После этого выполните повторную установку MySQL, чтобы он мог нормально функционировать.

Заключение

Следуя указанным шагам, вы должны устранить ошибку конфигурации MySQL. Убедитесь, что все команды выполняются с правами администратора, и внимательно следите за выводом каждой команды для выявления возможных ошибок. Важно также регулярно проверять логи и доступность требуемых директории и файлов, чтобы избежать подобных ситуаций в будущем.

Оцените материал
Добавить комментарий

Капча загружается...