Я читал, что сервер Mysql создает файл журнала, где он хранит записи обо всех действиях - например, когда и какие запросы выполняются.
Кто-нибудь может сказать мне, где он существует в моей системе? Как я могу это прочитать?
По сути, мне нужно сделать резервную копию базы данных с разными данными [резервное копирование между двумя датами], поэтому я думаю, что мне нужно использовать файл журнала здесь, поэтому я хочу сделать это ...
Я думаю, что этот журнал должен быть как-то защищен, потому что конфиденциальная информация, такая как имена пользователей и пароли, может быть зарегистрирована [если какой-либо запрос требует этого]; так может ли он быть защищен, его не так легко увидеть?
У меня есть root-доступ к системе, как я могу увидеть журнал?
Когда я пытаюсь открыть /var/log/mysql.log, он пуст.
Это мой конфигурационный файл:
[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
/etc/mysql/conf.d/mysqld_safe_syslog.cnf
только в том случае, если должен быть включен журнал ошибок. Тем не менее, этот ответ, как он написан в настоящее время, кажется, предлагает его для любого журнала.slow_query_log = 1;
,slow_query_log_file = /var/log/mysql/mysql-slow-query.log
иlong_query_time = 60
под [mysqld]. Когда я пытаюсь начать с вашей конфигурации, сервер запускается, но медленно и с ошибками. Я действительно предполагаю, что версии отличаются, и в более поздних версиях oracle хотел объединить имена переменных. Также: ИМХО 2 секунды не так уж и долго.Вы должны активировать ведение журнала запросов в MySQL.
редактировать /etc/my.cnf
перезагрузите компьютер или службу mysqld
откройте phpmyadmin / любое приложение, которое использует консоль mysql / mysql, и выполните запрос
cat /tmp/mysql.log
(вы должны увидеть запрос)источник
Журналы MySQL определяются глобальными переменными, такими как:
log_error
для журнала сообщений об ошибках;general_log_file
для общего файла журнала запросов (если включеноgeneral_log
);slow_query_log_file
для файла журнала медленных запросов (если включенslow_query_log
);Чтобы увидеть настройки и их расположение, выполните команду оболочки:
Чтобы напечатать значение журнала ошибок, выполните эту команду в терминале:
Чтобы прочитать содержимое файла журнала ошибок в реальном времени, выполните:
Примечание: Хит Control- Cкогда закончите
Когда общий журнал включен, попробуйте:
Для использования
mysql
с паролем доступа, добавить-p
или-pMYPASS
параметр. Чтобы сохранить его в памяти, вы можете настроить его~/.my.cnf
, например,Так что это запомнится в следующий раз.
источник
В моем (у меня установлен LAMP) файле / etc / mysql /my.cnf я нашел следующие закомментированные строки в разделе [mysqld]:
Я должен был открыть этот файл как супер пользователь с терминалом:
(Я предпочитаю использовать Geany вместо gedit или VI, это не имеет значения)
Я просто раскомментировал их и сохранил файл, затем перезапустил mysql
Запустите несколько запросов, откройте вышеуказанный файл (/var/log/mysql/mysql.log) и журнал был там :)
источник
Из справочного руководства по MySQL:
Проверьте
/var/lib/mysql
папку.источник
sudo -s
затем попробуйте перейти в папку MySQL.В дополнение к ответу loyola стоит упомянуть, что с MySQL 5.1
log_slow_queries
устарела и заменена наslow-query-log
Использование
log_slow_queries
приведет к вашейservice mysql restart
илиservice mysql start
сбойисточник
источник
В дополнение к ответам выше, вы можете передать параметры командной строки процессу mysqld для регистрации параметров, вместо того, чтобы вручную редактировать файл conf. Например, чтобы включить общее ведение журнала и указать файл:
Подтверждая другие ответы выше,
mysqld --help --verbose
выдает значения из файла conf (поэтому запуск с параметрами командной строки general-log - FALSE); тогда какmysql -se "SHOW VARIABLES" | grep -e log_error -e general_log
дает:Используйте немного более компактный синтаксис для журнала ошибок:
источник