Как увидеть файлы журнала в MySQL?



Я читал, что сервер Mysql создает файл журнала, где он хранит запись всех действий - например, когда и какие запросы выполняются.



может ли кто-нибудь сказать мне, где он существует в моей системе? Как я могу это прочесть?



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



Я думаю, что этот журнал должен быть защищен каким-то образом, потому что конфиденциальная информация такая поскольку имена пользователей и пароль могут быть зарегистрированы [если какой-либо запрос требует этого]; так может ли он быть защищен, не так легко увидеть?



У меня есть root доступ к системе, как я могу видеть в журнале?



когда я пытаюсь открыть /var/log / mysql.журнал пуст.



Это мой конфигурационный файл:



[client]
port = 3306
socket = /var/run/mysqld/mysqld.sock

[mysqld_safe]
socket = /var/run/mysqld/mysqld.sock
nice = 0

[mysqld]
log = /var/log/mysql/mysql.log
binlog-do-db=zero



user = mysql
socket = /var/run/mysqld/mysqld.sock
port = 3306
basedir = /usr
datadir = /var/lib/mysql
tmpdir = /tmp
skip-external-locking

bind-address = 127.0.0.1
#
# * Fine Tuning
#
key_buffer = 16M
max_allowed_packet = 16M
thread_stack = 192K
thread_cache_size = 8

general_log_file = /var/log/mysql/mysql.log
general_log = 1
917   8  

8 ответов:

вот простой способ, чтобы включить их. В mysql нам нужно часто видеть 3 журнала, которые в основном необходимы при разработке любого проекта.

  • The Error Log. Он содержит информацию об ошибках, которые происходят во время сервер работает (также запуск и остановка сервера)

  • The General Query Log. Это общая запись того, что такое mysqld выполнение (подключение, отключение, запросы)

  • The Slow Query Log. Он состоит из" медленных " операторов SQL (как указывается его имя).

по умолчанию никакие файлы журнала не включены в MYSQL. Все ошибки будут показаны в системном журнале.(/var / log / syslog)

чтобы включить их просто выполните следующие действия

step1: перейти к этому файлу( / etc / mysql / conf.d / mysqld_safe_syslog.cnf) и удалить или прокомментировать эти строки.

step2: перейдите в файл MySQL conf (/etc/mysql / my.cnf ) и добавить следующее: линии

чтобы включить журнал ошибок, добавьте следующее

[mysqld_safe]
log_error=/var/log/mysql/mysql_error.log

[mysqld]
log_error=/var/log/mysql/mysql_error.log

чтобы включить общий журнал запросов, добавьте следующее

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

чтобы включить медленный журнал запросов, добавьте следующее

log_slow_queries       = /var/log/mysql/mysql-slow.log
long_query_time = 2
log-queries-not-using-indexes

Шаг 3: сохраните файл и перезапустите mysql, используя следующие команды

service mysql restart

чтобы включить журналы во время выполнения, войдите в mysql client ( mysql-u root-p) и дайте:

SET GLOBAL general_log = 'ON';
SET GLOBAL slow_query_log = 'ON';

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

клик здесь посетить блог

вы должны активировать регистрацию запросов в mysql.

1.редактировать /etc / my.cnf

[mysqld]
log=/tmp/mysql.log

2.перезагрузите компьютер или службу mysqld

service mysqld restart

3.откройте phpmyadmin / любое приложение, которое использует mysql / mysql console и запустите запрос

4.cat / tmp / mysql.журнал ( вы должны увидеть запрос )

журналы MySQL определяются глобальными переменными, такими как:

  • log_error для журнала сообщений об ошибках;
  • general_log_file для общего файла журнала запросов (если включено general_log);
  • slow_query_log_file для медленного файла журнала запросов (если включено slow_query_log);

для просмотра настроек и их расположение выполните команды:

mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log -e slow_query_log

для печати стоимость журнала ошибок, выполните эту команду в терминале:

mysql -e "SELECT @@GLOBAL.log_error"

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

sudo tail -f $(mysql -Nse "SELECT @@GLOBAL.log_error")

Примечание: Нажмите управления -C когда закончите

когда общий журнал включен, попробуйте:

sudo tail -f $(mysql -Nse "SELECT CONCAT(@@datadir, @@general_log_file)")

использовать mysql с паролем доступа, добавить -p или

В моем (у меня установлена лампа) / etc/mysql/мой.cnf файл я нашел следующие, прокомментированные строки в разделе [mysqld]:

general_log_file        = /var/log/mysql/mysql.log
general_log             = 1

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

sudo geany /etc/mysql/my.cnf

(Я предпочитаю использовать Geany вместо gedit или VI, это не имеет значения)

Я просто раскомментировал их и сохранил файл, а затем восстановил mysql с помощью

sudo service mysql restart

выполнить несколько запросов, открыть выше файл (/var/log/mysql/mysql.log) и журнал был там:)

из справочного руководства MySQL:

по умолчанию все файлы журнала создаются в каталоге данных.

Регистрация .

дополнить Лойолаответ стоит отметить, что по состоянию на MySQL 5.1 log_slow_queries является устаревшим и заменяется на slow-query-log

используя log_slow_queries приведет service mysql restart или service mysql start провал

shell> mysqladmin flush-logs


shell> mv host_name.err-old backup-directory

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

mysqld --general-log --general-log-file=/var/log/mysql.general.log

подтверждая другие ответы выше,mysqld --help --verbose дает вам значения из файла conf (поэтому запуск с параметрами командной строки general-log является ложным); тогда как mysql -se "SHOW VARIABLES" | grep -e log_error -e general_log выдает:

general_log     ON
general_log_file        /var/log/mysql.general.log

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

mysqld --general-log --general-log-file=/var/log/mysql.general.log --log-error=/var/log/mysql.error.log

Comments

    Ничего не найдено.