Я пытаюсь найти файл, содержащий информацию, которая поможет мне определить, какие пользователи получили доступ к какой базе данных и с каких хостов.
Я бы предположил, что такие данные хранятся где-то в файле журнала.
На странице MySQL говорится:
The general query log - Established client connections and statements received from clients
Видеть: http://dev.mysql.com/doc/refman/5.0/en/server-logs.html
В нем также говорится:
By default, all log files are created in the mysqld data directory.
Итак, я НЕ спрашиваю, где хранятся общие журналы журналов запросов (потому что я ожидаю, что получу ответы, в которых говорится «это зависит»)
Пожалуйста, помогите мне разобраться:
Пара вещей, которые я уже пробовал:
я смотрел на
/etc/my.cnf
это был крошечный файл, который содержал только следующую информацию:
[mysqld]
skip-bdb
skip-innodb
set-variable = max_connections=500
safe-show-database
~
~
Я заглянул:
/var/lib/mysql/
Но мне не удалось увидеть в этом каталоге имена файлов, похожие на журнал.
Любые подсказки по этому поводу будут очень кстати.
Чтобы спросить MySQL, где он хранит общие журналы (и включены они или нет), вы можете просто ввести:
show variables like 'general_log%';
В командной строке MySQL (или запустите запрос от phpmyadmin).
например
mysql> show variables like 'general_log%';
+------------------+----------------------------+
| Variable_name | Value |
+------------------+----------------------------+
| general_log | OFF |
| general_log_file | /var/run/mysqld/mysqld.log |
+------------------+----------------------------+
Я думаю, это то, о чем вы просите.
Предполагается, что он находится в / var / lib / mysql /
ВКЛЮЧИТЕ свой общий журнал запросов
В Debian журналы mysql обычно хранятся в / var / log / mysql /. У производных, таких как Ubuntu, также будут журналы. Если установлен logrotate, он будет хранить сжатые копии ежедневных журналов mysql в течение нескольких дней (это настраивается).
Я предполагаю, что другие дистрибутивы Linux могут иметь журналы в аналогичном месте, например / var / logs / что-то.
Как указывает serverninja, общий журнал по умолчанию отключен, поэтому вы должны включить его либо из my.cnf, либо из командной строки. Это сильно повредит производительности!
Вам нужно включить общий журнал запросов специально в командной строке:
mysqld ... --log=[filename]
mysqld .. -l [filename]
Посмотрите на командную строку mysqld в выводе ps ax
чтобы определить, регистрирует ли и где ваш сервер информацию.
FWIW, расположение по умолчанию для общего журнала - это тот же каталог, что и файлы данных, и он называется [hostname].log
.
NB: если вы включите общий журнал запросов, журнал может очень быстро стать большим.