Как увидеть файлы журнала в 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
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.log2.перезагрузите компьютер или службу mysqld
service mysqld restart3.откройте 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провал
в дополнение к ответам выше вы можете передать параметры командной строки в процесс 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