Логи в MySQL
Всем привет! Заметка будет краткой, так как не хочу открывать лишние вкладки, для того чтобы вспомнить, где и как включать логи. Ниже будет описание о том, какие логи есть (кратко) и как их включить (емко).
Лог ошибок — Error Log
Если необходимо понять, по какой причине не запускается MySql сервер — error log вам в помощь. Там же еще можно прочесть сообщения о том,
По умолчанию все ошибки выводятся в консоль (stderr), в Debian ошибки пишутся в syslog, но по хорошему было бы неплохо вести этот лог в отдельном файле, а именно:
открыв файл /etc/mysql/my.conf я нашел следующую строчку:
Ок, полез в файл /etc/mysql/conf.d/mysqld_safe_syslog.cnf — там следующее содержимое:
Поняв, что все льется в syslog, я закомментировал syslog и добавил следующую строку:
Все, логи пишутся куда нужно, и я спокоен.
ps.: Для того, чтобы понять что означают те или иные ошибки, можно воспользоваться такой штукой, как perror.
Двоичный («bin’арный») лог.
В этот лог записываются все команды изменения БД, и нужен он для репликации и восстановления. Включать его не рекомендуется, если никакой репликации не планируется, так как он требователен к ресурсам.
Включается он в файле /etc/mysql/my.conf, там нужно разкомментрировать следующие строки:
Лог медленных запросов — mysql-slow.log.
Он будет содержать в себе запросы, которые очень нуждаются в оптимизации. По умолчанию он отключен, включается в том же /etc/mysql/my.cnf.
Если версия MySql у вас или = 5.7, то нужно исправить следующие настройки:
Лог всех запросов.
Пригодиться он опять же для оптимизации и выявления ошибочных запросов, так как записывает все запросы. по умолчанию отключен. Включаем там же: /etc/mysql/my.cnf.
Настройки нужно исправить на подобные:
Включить этот лог «на лету», без перезагрузки, мы можем и из консоли «mysql»:
Как я и обещал в какой-то другой статье — «возможно статья будет дополняться».
Во первых про LogRotate, приведу скрипт который используется у меня:
Как вы уже поняли, он стандартный, и он прекрасно справляется со своей работой.
Собственно все это можно посмотреть хоть в phpmyadmin, но так же никто не запрещает воспользоваться консольным клиентом MySQL, который так и называется: mysql 🙂
Для того, чтобы в него попасть, необходимо ввести следующую команду, а после пароль
все, вы в него попали 🙂
Там мне были полезны две команды:
show status — команда предоставляет информацию по состоянию сервера.
Некоторые примечания к приведенной выше информации:
show processlist — показывает, какие потоки запущены в настоящий момент. Пример ее вывода:
Начиная с 4.0.12, MySQL сообщает имя хоста для TCP/IP соединений как имя_хоста:клиентский_порт с тем, чтобы было проще понять, какой клиент чем занят.
Эта команда очень полезна, если выдается сообщение об ошибке ‘too many connections’ (слишком много соединений) и необходимо выяснить, что происходит. MySQL резервирует одно дополнительное соединение для клиента с привилегией SUPER, чтобы у вас всегда была возможность войти в систему и произвести проверку (предполагается, что вы не станете раздавать эту привилегию всем своим пользователям).
Некоторые состояния обычно можно увидеть в mysqladmin processlist.
Большинство состояний — это очень быстрые операции. Если потоки остаются в любом из этих состояний на протяжении большого количества секунд, то, возможно, возникла какая-то проблема, которую следует устранить.
Существует еще несколько состояний, не упомянутых выше, но большинство из них полезны только для поиска ошибок в mysqld.
Описания я взял с руководства, возможно немного не актуального, но на первых парах описаны все основные моменты. Остальное — смотрим полные версии руководства.
Открытие средства просмотра файла журнала
Средство просмотра журнала используется в среде SQL Server Management Studio для доступа к сведениям об ошибках и событиях, записываемых в следующие журналы.
События Windows (К ним можно получить доступ с помощью программы просмотра событий Windows.)
Начиная с SQL Server 2012 (11.x), в списке «Зарегистрированные серверы» можно просматривать файлы журналов SQL Server на локальных и удаленных экземплярах SQL Server. В списке «Зарегистрированные серверы» можно просматривать файлы журнала как для экземпляров в сети, так и для экземпляров вне сети. Дополнительные сведения о доступе в сети см. далее в разделе «Просмотр файлов журнала в сети с зарегистрированных серверов». Дополнительные сведения о доступе к автономным файлам журнала SQL Server см. в разделе Просмотр автономных файлов журнала.
Открыть средство просмотра журнала можно несколькими способами (в зависимости от того, какие сведения нужно просмотреть).
Permissions
Безопасность
Требуется членство в предопределенной роли сервера securityadmin.
Просмотр файлов журнала
Просмотр журналов, связанных с общими операциями SQL Server
В обозревателе объектов разверните узел Управление.
Выполните одно из приведенных ниже действий.
Щелкните правой кнопкой мыши Журналы SQL Server, выберите Просмотр, а затем Журнал SQL Server или Журнал SQL Server и Windows.
Разверните узел Журналы SQL Server, щелкните правой кнопкой мыши любой файл журнала и выберите Просмотреть журнал SQL Server. Можно также дважды щелкнуть любой файл журнала.
Доступны журналы Компонент Database Mail, SQL Server, Агент SQL Server и Windows NT.
Просмотр журналов, связанных с заданиями
В обозревателе объектов откройте Агент SQL Server, щелкните правой кнопкой мыши Задания и выберите Просмотр журнала.
Доступны журналы Компонент Database Mail, Журнал заданий и Агент SQL Server.
Просмотр журналов, связанных с планами обслуживания
В обозревателе объектов раскройте узел Управление, щелкните правой кнопкой мыши Планы обслуживания и выберите Просмотр журнала.
Доступны журналы Компонент Database Mail, Журнал заданий, Планы обслуживания, План удаленного обслуживания и Агент SQL Server.
Просмотр журналов, связанных с коллекциями данных
В обозревателе объектов раскройте узел Управление, щелкните правой кнопкой мыши Сбор данных и выберите команду Просмотреть журналы.
Доступны журналы Сбор данных, Журнал заданий и Агент SQL Server.
Просмотр журналов, связанных с компонентом Database Mail
В обозревателе объектов раскройте узел Управление, щелкните правой кнопкой мыши Компонент Database Mail и выберите команду Просмотреть журнал компонента Database Mail.
Доступны журналы Компонент Database Mail, Журнал заданий, Планы обслуживания, Планы удаленного обслуживания, SQL Server, Агент SQL Server и Windows NT.
Просмотр журналов, связанных с коллекциями аудитов
В обозревателе объектов разверните узел Безопасность, затем узел Аудиты, щелкните правой кнопкой мыши аудит и выберите команду Просмотреть журналы.
Доступны журналы Коллекция аудитов и Windows NT.
Как читать логи сервера и что это такое?
Логи – это инструмент, при помощи которого можно отслеживать рабочий процесс сервера или сайта. Поэтому знать, как читать логи это полезное умение для выявления сбоев в работе ПО, быстрого и результативного реагирования на другие проблемы (выявление злонамеренных действий), эффективного анализа рабочий процесс, противодействия DDoS-атакам.
Содержание:
Что такое логи и зачем они нужны
Логи (log) – это специальные текстовые файлы, в которых в хронологическом порядке фиксируется информация обо всех действиях программы или пользователей. Проще говоря, это журнал регистрации всех событий происходивших в системе:

Логи доступа указывают на уязвимые места сайта (в случае взлома), помогают собирать статистику посещаемости, узнавать откуда проводились запросы и какие ресурсы ссылаются на этот сайт, оценивать популярность страниц. По файлам ошибок проще найти источник проблемы и оперативно устранить баги и сбои. Журналы сервера (server logs) облегчают контроль рабочего процесса серверной машины.
В файлах логов записывается и отслеживается история работы всего программного комплекса. Поэтому специалисты рекомендуют периодически просматривать их, даже если никаких подозрительных моментов не произошло. И тем более немедленно обратиться к ним, если резко возросло количество ошибок, посыпался спам или заметно увеличилась нагрузка на сервер.
Типы логов и где их найти
Месторасположение логов зависит от используемого ПО, настроек, прописанного админом пути. Чаще всего server logs сохраняются в var/log/. Однако, не все сервисы помещают файлы регистрации в эту директорию. В любом случае, можно уточнить такую информацию у веб-хостера.
У дистрибутивов Linux CentOS или Fedora логи серверной машины лежат в /var/log/. Там можно найти:
Лог ошибок MySQL ($hostname.err) хранится в /var/lib/mysql/. Для Debian или Ubuntu местоположение логов аналогично, за исключением log file ошибок MySQL: /mysql/error.log. А также – логи веб сервера Apache сохраняются по пути /var/log/apache2.
У ОС Windows дружной метод структурирования log-файлов. События делятся на несколько уровней:
Их можно отсортировать или отфильтровать и выбрать необходимое. 
Запуск и отключение логов осуществляется с административной панели. Как правило, доступ через раздел «журнал» или «логи». При этом стоит учитывать, что файлы не сохраняются годами. Поэтому, при необходимости посмотреть log, это нужно сделать своевременно.
Какая информация хранится в логах и как ее интерпретировать?
Для большинства пользователей содержимое log-файлов это бессмысленный набор символов. Как читать логи, чтобы понять, что в них зашифровано?
Строка access.log сервера содержит:
Как правило, такой информации достаточно, чтобы проанализировать ситуацию и сделать нужные выводы. Например, заблокировать бота, который создал чрезмерную нагрузку на сайт.
Файл ошибок (error.log) регистрирует моменты, когда что-то пошло не так. Из них можно узнать:
Конечно, даже после расшифровки, данных логов еще нужно проанализировать. Для этого существует различное ПО, которое помогает отрабатывать данные из логов – Weblog Expert, WebAlyzer, Analog, Webtrends, Awstats, SpyLOG Flexolyzer и другие платные и бесплатные программы.
How to see log files in MySQL?
Can anybody tell me where it exists in my system? How can I read it?
Basically, I need to back up the database with different input [backup between two dates] so I think I need to use log file here, that’s why I want to do it.
I think this log must be secured somehow because sensitive information such as usernames and password may be logged [if any query require this]; so may it be secured, not easily able to be seen?
I have root access to the system, how can I see the log?
When I try to open /var/log/mysql.log it is empty.
This is my config file:
8 Answers 8
Here is a simple way to enable them. In mysql we need to see often 3 logs which are mostly needed during any project development.
By default no log files are enabled in MYSQL. All errors will be shown in the syslog ( /var/log/syslog ).
To Enable them just follow below steps:
step1: Go to this file (/etc/mysql/conf.d/mysqld_safe_syslog.cnf) and remove or comment those line.
step2: Go to mysql conf file ( /etc/mysql/my.cnf ) and add following lines
To enable error log add following
To enable general query log add following
To enable Slow Query Log add following
step3: save the file and restart mysql using following commands
Finally one thing I would like to mention here is I read this from a blog. Thanks. It works for me.
Как посмотреть логи mysql windows
MySQL Server has several logs that can help you find out what activity is taking place.
| Log Type | Information Written to Log |
|---|---|
| Error log | Problems encountered starting, running, or stopping mysqld |
| General query log | Established client connections and statements received from clients |
| Binary log | Statements that change data (also used for replication) |
| Relay log | Data changes received from a replication source server |
| Slow query log | Queries that took more than long_query_time seconds to execute |
| DDL log (metadata log) | Metadata operations performed by DDL statements |
By default, no logs are enabled, except the error log on Windows. (The DDL log is always created when required, and has no user-configurable options; see Section 5.4.6, “The DDL Log”.) The following log-specific sections provide information about the server options that enable logging.
You can control the general query and slow query logs during runtime. You can enable or disable logging, or change the log file name. You can tell the server to write general query and slow query entries to log tables, log files, or both. For details, see Section 5.4.1, “Selecting General Query Log and Slow Query Log Output Destinations”, Section 5.4.3, “The General Query Log”, and Section 5.4.5, “The Slow Query Log”.
The relay log is used only on replica servers, to hold data changes from the source server that must also be made on the replica. For discussion of relay log contents and configuration, see Section 17.2.2.1, “The Relay Log”.
For information about log maintenance operations such as expiration of old log files, see Section 5.4.7, “Server Log Maintenance”.
For information about keeping logs secure, see Section 6.1.2.3, “Passwords and Logging”.

