Error log mysql centos



Журналы (logs) в MySQL

В MySQL на данный момент существуют 4 вида журнала (лога) и при достаточно серьёзной работе с базами на MySQL необходимо за ними следить. Например, бинарный лог у нас за сутки набирает около гигабайта, а размер жёсткого диска на сервере ограничен и за ними надо следить. Однако следить следует не только за бинарным логом, так как логи (журналы) в MySQL могут принести немалую пользу.

Итак, какие логи ведёт MySQL? Это:
1. бинарный лог (binary log)
2. лог ошибок (error log)
3. лог медленный запросов (slow query log)
4. лог запросов (general query log)
5. лог репликаций (relay log)

Каждый из них по-своему полезен.

Бинарный лог

В первую очередь полезен с точки зрения репликаций. Можно его бэкапить, можно использовать для восстановления данных на более точное время при использовании бэкапов. Лог содержит все команды изменений базы данных, выборки (select, show) не сохраняет, для таблиц, поддерживающих транзакции (BDB, InnoDB) запись в лог выполняется только после выполнения команды COMMIT . Для лога можно указывать список баз данных, которые надо логировать и список баз данных, которые не надо логировать. В более ранних версиях вместо бинарного лога использовался лог обновлений. Использование бинарного лога снижает производительность базы данных, однако его польза настолько велика, что крайне не рекомендуется его отключать. Рекомендуется защищать бинарный лог паролем, так как он может данные также о паролях пользователей. При достижении максимально разрешённого размера (1 гиг по умолчанию) создаётся следующий файл. Каждый новый файл имеет порядковый номер после имени.

Содержание бинарного лога можно посмотреть с помощью утилиты mysqlbinlog.

Основные настройки в my.cnf

Местоположение лога:
log_bin = /var/log/mysql/mysql-bin.log

Максимальный размер, минимум 4096 байт, по умолчанию 1073741824 байт (1 гигабайт):
max_binlog_size= 500M

Сколько дней хранится:
expire_logs_days = 3

Наиболее часто использующиеся команды

Повторение действий после операции восстановления:
shell> mysqlbinlog log_file | mysql -h server_name

Удаление логов до определённого файла:
PURGE BINARY LOGS TO ‘mysql-bin.000’;

Удаление логов до определённой даты:
PURGE BINARY LOGS BEFORE ‘YYYY-MM-DD hh:mm:ss’;

Лог ошибок

Особенно полезен в случаях сбоев. Лог содержит информацию об остановках, запусках сервера, а также сообщения о критических ошибках. Может содержать сообщения с предупреждениями (warnings).

Основные настройки в my.cnf

Местоположение лога:
log_error = /var/log/mysql/mysql.err

Флаг, указывающий стоит ли записывать в лог в том числе предупреждения (записываются, если значение больше нуля):
log_warnings = 1

Наиболее часто использующиеся команды

Переход к новому файл лога:
shell> mysqladmin flush-logs

Копирование старой части лога (необходимо, так как в случае повторного выполнения fluch он будет удалён):
shell> mv host_name.err-old backup-directory

Лог медленных запросов

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

Основные настройки в my.cnf

Местоположение лога:
log_slow_queries = /var/log/mysql/mysql_slow.log

Со скольки секунд выполнения запрос считается медленным, минимальное значений — 1 секунда, по умолчанию 10 секунд:
long_query_time = 10

Если надо логировать запросы, которые не используют индексы, надо добавить строку:
log-queries-not-using-indexes

Если надо вести лог медленных команд, таких как OPTIMIZE TABLE , ANALYZE TABLE и ALTER TABLE :
log-slow-admin-statements

Читайте также:  How to fix download error

Лог запросов

Лог содержит информацию о подключениях и отключениях клиентов, а также все SQL запросы, которые были получены. Фактически, это временный лог. Обычно лог удаляется автоматически сразу после выполнения всех команд (т.е. как только он стал ненужным). Лог ведётся в соответствии с очередность поступления запросов. Этот лог содержит все запросы к базе данных (независимо от приложений и пользователей). Так что если есть желание (или необходимость) проанализировать, какие необходимы индексы, какие запросы могли бы оптимизированы, то этот лог как раз может помочь в таких целях. Лог полезен не только для случаев, когда необходимо знать, какие запросы выполняются с базой данных, но и в случаях, когда ясно, что возникла ошибка с базой данных, но неизвестно, какой запрос был отправлен к базе данных (например, в случае генерации динамического SQL-а). Рекомендуется защищать лог запросов паролем, так как он может данные также о паролях пользователей.

Основные настройки в my.cnf

Местоположение лога:
log = /var/log/mysql/mysql.log

Наиболее часто использующиеся команды

В отличии от других логов, перезагрузка сервера и команда fluch не инициирует создание нового лога. Но это можно сделать вручную:
shell> mv host_name.log host_name-old.log
shell> mysqladmin flush-logs
shell> mv host_name-old.log backup-directory

Лог репликаций

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

Основные настройки в my.cnf

Местоположение лога:
relay-log = /var/log/mysql/mysql-relay-bin.log

Максимальный размер:
max_relay_log_size = 500М

Наиболее часто использующиеся команды

Начать новый файл лога можно только при остановленном дополнительном (slave) сервере:
shell> cat new_relay_log_name.index >> old_relay_log_name.index
shell> mv old_relay_log_name.index new_relay_log_name.index

Команда fluch logs инициирует ротацию лога.

Источник

MySQL Log File Location on Redhat/CentOS Linux Server

MySQL Log File Location on a Redhat/CentOS/Fedora Linux Server

MySQL log file on Redhat/CentOS Server : /var/log/mysqld.log

On some servers mySQL logs might be in a different location. Do the below steps to find out mySQL log file location if you didn’t see the logs in the above default location.

Log into your Linux Server via SSH as root and run the below command to check the mySQL error log file location. The error log and mySQL general log might be already set in the my.cnf file. Run the command “cat my.cnf” to view the content of mySQL configuration file. Do the below steps if you didn’t see any log file location set in my.cnf file.

]# mysqladmin variables | grep log_error
| log_error | /var/lib/mysql/server.err

On the above server mySQL error logs are saved in the file /var/lib/mysql/server.err

Type the below command to check the mySQL general_log_file location.

]# mysqladmin variables | grep general_log_file
| general_log_file | /var/lib/mysql/server.log

mySQL log File location on Linux Server

mysql error log file location on linux Server

On my server mySQL error log files and general log file are saved in the above location.

Run the below command to check the slow query log location on Redhat Server.

]# mysqladmin variables | grep slow_query_log_file
| slow_query_log_file | /var/lib/mysql/server-slow.log

Читайте также:  Bad card driver error minecraft

MySQL slow query log file Location Redhat CentOS Server

Источник

Trying to understand how to set the location of MySQL log files in CentOS

I am having a heck of a time getting this web server to log MySQL errors for me. I just started having issues with MySQL crashing every night and having to restart the service. I am running MySQL on CentOS release 7.6.1810 and the MySQL version is 15.1 (distrib 10.1.37-MariaDB).

I am trying to pinpoint the cause but I am unable to get the log files to generate.

then edit it in nano it does not have the [mysql] line in the file. This is where you would add in the general_log stuff.

However, in /etc/my.cnf.d/ I do have a mysql-clients.cnf and a server.cnf which do show the [mysql] line in the file to add in the logs.

If I add the line in manually to my.cnf when I stop the service I cannot restart it.

The same thing happens if I add the code for the log files in the server.cnf .

If I add the code in on the mysql-clients.cnf I can stop and start the server with no issues, but nothing is being written to any of the files.

I also created the files and gave them 777 permissions and chown to mysql:mysql .

Does anyone have any idea on what I can do to get this logging?

The following lines are what I have been trying to add:

Thank you for any and all help!

1 Answer 1

What you describe sounds like (good faith) desperation. The reality is you only ever need to edit one config file to do what you have set out to do and that is (typically) the /etc/my.cnf file.

With that established, I would recommend you rewind and undo all of the adjustments you made to others files, and start from “tabula rasa.”

Once you are at a stable state, I recommend logging into MySQL and running this command to check the values of current MySQL server settings:

That will show you all variable names and settings. Make sure the values you are adjusting are indeed named the way the MySQL install expects them to be named.

Once you confirm those values, set them as you have outlined. Just note that you will only ever be changing the mysqld settings since those are the MySQL server settings; mysqld equates to “MySQL Daemon” which is a classic name for a Linux/Unix server.

Источник

Помощь

Вход в личный кабинет

Регистрация клиента

Сообщить об ошибке

Возможные проблемы с MySQL

Пароль к серверу баз данных утерян

В случае утери пароля создайте новый, выполнив следующие команды.

Остановите MySQL командой:

Выполните запуск MySQL без учета прав доступа командой:

Зайдите пользователем root командой:

Перезагрузите сервер баз данных с учетом прав доступа командой:

Выполните вход на MySQL сервер с новым паролем:

Как просмотреть перечень ошибок MySQL сервера?

Для получения списка ошибок сервера баз данных просмотрите его лог-файлы. Для каждой ОС и файловой системы они располагаются в разных местах. Чтобы определить, где находятся лог-файлы MySQL на вашем сервере, подключитесь к серверу через консоль (например, Putty) и выполните команду, которая найдет файл my.cnf:

Читайте также:  Check network services error

Результатом выполнения этой команды будут пути, по которым находится файл с этим именем.

Откройте любым редактором, например vi, найденный файл и найдите строки, начинающиеся с “log” или “log-error”

Откройте редактором лог-файл по найденному пути и просмотрите ошибки.

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

Создайте его и наделите привилегиями командами:

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

Возможные ошибки в лог-файле и их решение

В лог-файле или в браузере выдается ошибка:

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

В случае ошибки запустите несколько команд:

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

Возникает ошибка вида:

Сообщение говорит о том, что запрещен доступ для пользователя user_xxx к базе данных или какой-то ее таблице.

Зайдите в ISPmanager, перейдите в раздел «Базы данных» — нажмите кнопку «Управление серверами БД», двойным кликом на имени сервера баз данных откройте его настройки.

Проверьте, что указанные данные в полях «Имя пользователя» и «Пароль» соответствуют тем, которые находятся в настройках сайта для подключения к этой БД.

На сайте возникает ошибка вида «Не удалось подключиться к базе данных»

Варианты сообщения об ошибке в случае неудачи при подключении к базе данных могут быть следующими:

Убедитесь, что сервер баз данных MySQL запущен. Зайдите в ISPmanager а раздел «Настройки» -> «Конфигурация ПО» и проверьте, что в списке возможностей присутствует строка «Сервер СУБД MySQL» и лампочка в этой строке зелёного цвета. Если лампочка выключена, то выделите строку и нажмите «Установить» на панели инструментов.

Если проблема не исчезла, то подключитесь к серверу через консоль и перезапустите MySQL командой:

Проверьте, что сервер корректно запустился, выполнив команду, которая выводит список процессов MySQL:

Если в результате не вывелось ни одного процесса, то MySQL не запустился.

Не удается запустить MySQL

Попробуйте запустить MySQL через панель управления ISPmanager. Если не получилось, то подключитесь к серверу по SSH и попробуйте запустить MySQL через консоль командой:

Если MySQL не запускается через консоль, вы получите сообщение об ошибке вида:

Проверьте свободное место на диске командой

выведет, сколько места занимает каждая директория.

Если свободного места осталось мало, освободите его, очистив в первую очередь лог-файлы MySQL и других служб.

Перезапустите MySQL через консоль командами, приведенными выше.

Если проблема сохранилась, внимательно изучите записи в лог-файле MySQL, начинающиеся с [ERROR]. Например, запись Error while setting value ‘—read_buffer_size=256K’ to ‘sort_buffer_size’ означает, что директива sort_buffer_size в конфигурационном файле MySQL, прописана не верно.

Источник

Оцените статью
toolgir.ru
Adblock
detector