MySQL: включаем логи

Автор: | 01/22/2012
 

Сам MySQL уже должен быть установлен, например — во время установки LAMP, как было описано тут>>>.

Что бы включить подробное логгирование запросов ко всем базам MySQL, надо добавить запись в файл my.cnf.

Если вы не уверены, что он у вас есть (в случае, если установка проводилась по статье, как в ссылке выше — то его не будет) — то сначала сделайте поиск:

# locate my.cnf
# whereis my.cnf
# find my.cnd

Если никакая из приведенных команд результата не принесла — выполняем следующее.

При установке, MySQL создает несколько демонстрационных файлов, и размещает их в каталоге /usr/local/share/mysql/. Среди них есть четыре варианта:

my-huge.cnf — для сервера с огромной нагрузкой;
my-large.cnf — для сервера с большой нагрузкой;
my-medium.cnf — средней нагрузкой;
my-small.cnf — маленькой.

Выберите нужный вариант, и выполните:

# cp /usr/local/share/mysql/my-small.cnf /var/db/mysql/my.cnf

где my-small.cnf — вариант файла конфигурации, который вы выбрали для своего сервера. Например my-small.cnf.

Путь, куда вы будете копировать может быть разным: /var/db/mysql/, /etc/ или /usr/local/etc/MySQL при запуске выполнит поиск файла во всех этих каталогах.

Далее, в файле, который вы скопировали (.те. /var/db/mysql/my.cnf, если вы не выбрали другой путь), найдите блок [mysqld] и в его конец добавьте строку:

log=/var/log/mysql.log

Опять-таки, расположение файла лога может любым, на ваше усмотрение.

Теперь — создайте сам файл и установите на него права для MySQL:

# touch /var/log/mysql.log
# chown mysql:mysql /var/log/mysql.log

Перезагрузите MySQL:

# /usr/local/etc/rc.d/mysql-server restart

Теперь, все запросы к базам MySQL будут записываться в этот лог.

ВАЖНО: обязательно настроить ротацию лога, иначе он быстро разрастется до слишком больших размеров.

В файл конфигурации /etc/newsyslog.conf добавьте строку:

/var/log/mysql.log      mysql:mysql     600  2     100  $W6D0 JB    /var/db/mysql/akira.pid

где 100  — это размер файла лога, после которого он будет заархивирован, а akira.pid — название pid-файла с именем вашего сервера.

Перезапустите newsyslod для применения изменений:

# /etc/rc.d/newsyslog restart
Creating and/or trimming log files.

Теперь можно посмотреть сам лог:

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