Как просмотреть журнал mariadb?

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

Я использую New Relic для мониторинга производительности моего сервера. На днях я заметил очень странную проблему: каждые 3 часа сервер будет недоступен в течение 1 минуты. И в отчете New Relic во время простоя сервера были резкие всплески активности в базе данных.

Проблема в том, что я новичок в системном администрировании, и не знаю, как посмотреть журналы базы данных. Я использую MariaDB на машине с Ubuntu 14.04. Так где я могу найти журнал? Я пытался просмотреть /var/log/mysql.err, /var/log/mysql.log и /var/log/mysql/error.log, но они пустые.

Я также пытался выполнить grep ‘mysql’ /var/log/syslog, но ничего не нашел.

Мне нужно включить ведение журнала в конфигурационном файле MariaDB? Если да, то как?

Один из способов узнать текущий путь к файлу журнала — это использовать следующий SQL-запрос:

show global variables like 'log_error';

Вывод должен выглядеть примерно так:

+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| log_error     | /var/log/mysqld.log |
+---------------+---------------------+

В системах на базе systemd (Ubuntu) журналы централизованно собираются и управляются в журнале. Чтобы просмотреть журнал MariaDB, выполните:

# journalctl -u mariadb -f

Вы должны увидеть что-то вроде:

-- Журналы начинаются в Пн 2021-08-30 08:59:29 CDT. --
25 авг 21:10:22 aorus-15g-yb mysqld[1123]: 2022-08-25 21:10:22 0 [Note] /usr/sbin/mysqld (mysqld 10.3.34-MariaDB-0ubuntu0.20.04.1) запуск как процесс 1123 ...
25 авг 21:10:22 aorus-15g-yb systemd[1]: Запущен сервер базы данных MariaDB 10.3.34.
25 авг 21:10:22 aorus-15g-yb /etc/mysql/debian-start[1254]: Ищу 'mysql' как: /usr/bin/mysql
25 авг 21:10:22 aorus-15g-yb /etc/mysql/debian-start[1254]: Ищу 'mysqlcheck' как: /usr/bin/mysqlcheck
25 авг 21:10:22 aorus-15g-yb /etc/mysql/debian-start[1254]: Эта установка MariaDB уже обновлена до 10.3.34-MariaDB.

У меня была такая же проблема на Debian 8.5, используя MariaDB 10.1.16. Я настроил конфигурацию, как рекомендовано, но ничего, файл error.log не записывался с ошибками.

В конце концов, я посмотрел в /var/log/syslog, и там были ошибки и предупреждения.

tail -f /var/log/syslog | grep mysql

На Fedora 35 он находится по адресу /var/log/mariadb/mariadb.log. Возможно, в других недавних версиях Fedora или других дистрибутивах тоже.

Как найти журнал MySQL или MariaDB

1. Войдите на сервер через SSH или терминал как пользователь root.

2. Выполните следующую команду: mysql -e “show variables like ‘%log%‘;”

3. Найдите опцию с меткой “log_error”, чтобы найти путь к файлу журнала.

вы можете просмотреть записи syslog, связанные с сервисом MariaDB с помощью journalctl:
$ journalctl -u mariadb.service

Если иногда журнал не создается, то откройте /etc/my.cnf, отредактируйте log_error=/var/log/mysqld.log. Перезапустите MySQL с помощью следующей команды. /scripts/restartsrv_mysql.

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

Чтобы просмотреть логи MariaDB на вашей машине под управлением Ubuntu 14.04, вам потребуется следовать определённым шагам для настройки и доступа к лог-файлам. Поскольку вы столкнулись с проблемами производительности, важно убедиться, что логирование настроено корректно, чтобы отслеживать любые ошибки или предупреждения, которые могут способствовать сбоям сервера.

Шаг 1: Определение пути к логам

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

mysql -e "SHOW GLOBAL VARIABLES LIKE 'log_error';"

Вывод должен выглядеть примерно так:

+---------------+---------------------+
| Variable_name | Value               |
+---------------+---------------------+
| log_error     | /var/log/mysqld.log |
+---------------+---------------------+

Это покажет вам путь к файлу логов. Если файл не существует или пуст, переходите к следующему шагу.

Шаг 2: Настройка логирования

Если логи отсутствуют, возможно, их нужно активировать в конфигурационном файле. Вы можете найти файл конфигурации (my.cnf) по следующему пути:

/etc/mysql/my.cnf

Откройте этот файл в текстовом редакторе, таком как nano или vi:

sudo nano /etc/mysql/my.cnf

Добавьте или проверьте следующую строчку в разделе [mysqld], чтобы включить логирование ошибок:

log_error = /var/log/mysql/error.log

Сохраните изменения и закройте редактор.

Шаг 3: Перезапуск службы MariaDB

После внесения изменений в конфигурацию необходимо перезапустить службу MariaDB:

sudo systemctl restart mariadb

Шаг 4: Проверка журналов

Теперь вы можете просмотреть лог ошибок, чтобы найти возможные причины сбоев. Используйте следующую команду, чтобы открыть файл логов:

tail -f /var/log/mysql/error.log

Если вместо этого вы не видите активности в файле ошибок, вы можете проверить системные журналы:

journalctl -u mariadb.service -f

Это позволит вам просмотреть все последние сообщения, связанные с MariaDB, в реальном времени.

Другие пути поиска ошибок

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

tail -f /var/log/syslog | grep mysql

Это может дать вам дополнительную информацию о проблемах, связанных с MariaDB, которые могли быть записаны в других логах.

Заключение

Ваша проблема с производительностью может быть связана с некорректной работой MariaDB, поэтому наличие логов очень важно для диагностики. Следуя вышеуказанным шагам, вы сможете настроить логи, найти их местоположение и получить доступ к ним. Надеюсь, это поможет вам выявить и устранить причину сбоев на вашем сервере. Если всё равно не удаётся найти решение, подумайте о том, чтобы обратиться за дополнительной помощью, возможно, к более опытному системному администратору.

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

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