Вопрос или проблема
root@riccardo-Inspiron-15-3520:/home/riccardo# uname -a
Linux riccardo-Inspiron-15-3520 5.15.0-122-generic #132~20.04.1-Ubuntu SMP Fri Aug 30 15:50:07 UTC 2024 x86_64 x86_64 x86_64 GNU/Linux
root@riccardo-Inspiron-15-3520:/home/riccardo# lsb_release -crid
Дистрибьютор: Ubuntu
Описание: Ubuntu 20.04.6 LTS
Версия: 20.04
Кодовое имя: focal
root@riccardo-Inspiron-15-3520:/home/riccardo# dpkg -l | grep maria
ii mariadb-client 1:10.3.39-0ubuntu0.20.04.2 all Клиентская база данных MariaDB (метапакет, зависящий от последней версии)
ii mariadb-client-10.3 1:10.3.39-0ubuntu0.20.04.2 amd64 Двоичные файлы клиентской базы данных MariaDB
ii mariadb-client-core-10.3 1:10.3.39-0ubuntu0.20.04.2 amd64 Двоичные файлы основного клиента базы данных MariaDB
ii mariadb-common 1:10.3.39-0ubuntu0.20.04.2 all Общий метапакет MariaDB
ii mariadb-server 1:10.3.39-0ubuntu0.20.04.2 all Сервер базы данных MariaDB (метапакет, зависящий от последней версии)
ii mariadb-server-10.3 1:10.3.39-0ubuntu0.20.04.2 amd64 Двоичные файлы сервера базы данных MariaDB
ii mariadb-server-core-10.3 1:10.3.39-0ubuntu0.20.04.2 amd64 Основные файлы сервера базы данных MariaDB
root@riccardo-Inspiron-15-3520:/home/riccardo# apt policy mariadb-server
mariadb-server:
Установлено: 1:10.3.39-0ubuntu0.20.04.2
Кандидат: 1:10.3.39-0ubuntu0.20.04.2
Таблица версий:
*** 1:10.3.39-0ubuntu0.20.04.2 500
500 http://archive.ubuntu.com/ubuntu focal-updates/universe amd64 Пакеты
500 http://archive.ubuntu.com/ubuntu focal-updates/universe i386 Пакеты
500 http://security.ubuntu.com/ubuntu focal-security/universe amd64 Пакеты
500 http://security.ubuntu.com/ubuntu focal-security/universe i386 Пакеты
100 /var/lib/dpkg/status
1:10.3.22-1ubuntu1 500
500 http://archive.ubuntu.com/ubuntu focal/universe amd64 Пакеты
500 http://archive.ubuntu.com/ubuntu focal/universe i386 Пакеты
root@riccardo-Inspiron-15-3520:/home/riccardo#
Я выполнил следующую команду, и она по-прежнему не работает, можете помочь мне понять, почему?
root@riccardo-Inspiron-15-3520:/home/riccardo# sudo systemctl start mariadb
Задание для mariadb.service не выполнено, так как управляющий процесс завершился с кодом ошибки.
Смотрите "systemctl status mariadb.service" и "journalctl -xe" для получения подробностей.
root@riccardo-Inspiron-15-3520:/home/riccardo#
root@riccardo-Inspiron-15-3520:/home/riccardo# systemctl status mariadb.service
● mariadb.service - Сервер базы данных MariaDB 10.3.39
Загружено: загружено (/lib/systemd/system/mariadb.service; включено; предустановка продавца: включено)
Активно: не удалось (Результат: код выхода) с Ср 2024-10-09 16:05:26 CEST; 9 мин. назад
Документы: man:mysqld(8)
https://mariadb.com/kb/en/library/systemd/
Процесс: 3046082 ExecStartPre=/usr/bin/install -m 755 -o mysql -g root -d /var/run/mysqld (код=завершен, статус=0/УСПЕШНО)
Процесс: 3046083 ExecStartPre=/bin/sh -c systemctl unset-environment _WSREP_START_POSITION (код=завершен, статус=0/УСПЕШНО)
Процесс: 3046085 ExecStartPre=/bin/sh -c [ ! -e /usr/bin/galera_recovery ] && VAR= || VAR=`cd /usr/bin/..; /usr/bin/galera_recovery`; [ $? -eq 0 ] && systemctl set-environment _WSREP_START_POSIT>
Процесс: 3046093 ExecStart=/usr/sbin/mysqld $MYSQLD_OPTS $_WSREP_NEW_CLUSTER $_WSREP_START_POSITION (код=завершен, статус=1/ОШИБКА)
Главный PID: 3046093 (код=завершен, статус=1/ОШИБКА)
09 окт 16:05:26 riccardo-Inspiron-15-3520 systemd[1]: Запуск сервера базы данных MariaDB 10.3.39...
09 окт 16:05:26 riccardo-Inspiron-15-3520 sh[3046090]: [108B blob data]
09 окт 16:05:26 riccardo-Inspiron-15-3520 sh[3046090]: Фатальная ошибка в обработке значений по умолчанию. Программа прервана
09 окт 16:05:26 riccardo-Inspiron-15-3520 mysqld[3046093]: [98B blob data]
09 окт 16:05:26 riccardo-Inspiron-15-3520 mysqld[3046093]: Фатальная ошибка в обработке значений по умолчанию. Программа прервана
09 окт 16:05:26 riccardo-Inspiron-15-3520 systemd[1]: mariadb.service: Основной процесс завершился, код=завершен, статус=1/ОШИБКА
09 окт 16:05:26 riccardo-Inspiron-15-3520 systemd[1]: mariadb.service: Не удалось с результатом 'код выхода'.
09 окт 16:05:26 riccardo-Inspiron-15-3520 systemd[1]: Не удалось запустить сервер базы данных MariaDB 10.3.39.
строки 1-19/19 (КОНЕЦ)
«Фатальная ошибка в обработке значений по умолчанию» относится к ошибке при чтении конфигурационных файлов. Не хватает прав доступа к файлам, или отсутствует какой-то конкретный файл.
Если вы strace -fe trace=file my_print_defaults --mysqld
и посмотрите на системный вызов, открывающий файл/директорию, это даст более конкретный ответ о том, почему MariaDB не запускается.
Кроме того, хотя MariaDB 10.3 является стандартной версией в Ubuntu 20.04, она выведена из обслуживания в upstream. Более новые серии релизов доступны на mariadb.org/downloads.
Ответ или решение
Проблема с запуском MariaDB на Ubuntu 20.04
Если MariaDB не запускается на Ubuntu 20.04, это может быть вызвано рядом причин, включая проблемы с конфигурацией, отсутствующие файлы или недостаточные права доступа к необходимым ресурсам. В данном случае, из предоставленной информации видно, что при попытке запустить сервис MariaDB вы получаете сообщение об ошибке: "Fatal error in defaults handling".
Шаг 1: Проверка состояния службы
Для начала, давайте посмотрим на статус службы MariaDB. Вы выполнили команду systemctl status mariadb.service
, и вывод указывает на то, что служба не запустилась:
Active: failed (Result: exit-code)
Это говорит о том, что основной процесс вышел с ошибкой. Дальнейший анализ покажет, что причина может заключаться в ошибках обработки конфигурации.
Шаг 2: Анализ конфигурационных файлов
Ошибка "Fatal error in defaults handling" часто связана с проблемами в конфигурационных файлах MariaDB. Необходимо проверить следующие моменты:
-
Права доступа: Убедитесь, что у пользователя
mysql
есть необходимые права доступа к конфигурационным файлам и каталогам MariaDB. Вы можете проверить это с помощью команды:ls -l /etc/mysql/my.cnf
Если доступ ограничен, попробуйте изменить права:
sudo chown mysql:mysql /etc/mysql/my.cnf sudo chmod 644 /etc/mysql/my.cnf
-
Отсутствующие файлы: После проверки прав доступа, проверьте наличие всех необходимых конфигурационных файлов. Используйте команду
strace
, как вы упомянули, для отслеживания системных вызовов. Это поможет вам определить, какие файлы MariaDB не может открыть:strace -fe trace=file my_print_defaults --mysqld
Шаг 3: Переустановка или обновление MariaDB
Ваш текущий экземпляр MariaDB (10.3.39) больше не поддерживается. Рекомендуется обновить до более новой версии, чтобы избежать потенциальных проблем с безопасностью и совместимостью. Вы можете сделать это следующим образом:
-
Удалите текущую версию MariaDB:
sudo apt remove mariadb-server sudo apt purge mariadb-server
-
Добавьте соответствующий репозиторий для более новой версии MariaDB:
sudo apt update sudo apt install software-properties-common sudo add-apt-repository 'deb [arch=amd64] http://mirrors.nationalroute.com/mariadb/repo/10.5/ubuntu focal main' sudo apt update
-
Установите новую версию MariaDB:
sudo apt install mariadb-server
Шаг 4: Логи и диагностика
Если после выполнения всех этих действий MariaDB не запускается, стоит заглянуть в логи. Логи можно найти в /var/log/mysql/error.log
или /var/log/syslog
. Данные в логах могут помочь более точно определить источник проблемы.
Заключение
Если вы потребуете дальнейшей помощи, обязательно предоставьте информацию о ваших действиях и любые новые сообщения об ошибках, которые возникают. Этот процесс поможет в дальнейшем анализе. Поддержка актуальной версии MariaDB обеспечит вам не только стабильность работы, но и надёжность вашей базы данных.