Иногда бывает ошибка
Error: Couldn't read status information for table general_log ()mysqldump: Couldn't execute 'show create table `general_log`': Table 'mysql.general_log' doesn't exist (1146)
Особенно актуально, когда есть перенос данных между серверами с разными версиями mysql, а также когда неправильно чистят таблицу general_log
Вариант 1: попробовать mysql_upgrade
Вариант 2: создать эту таблицу
USE mysql;
CREATE TABLE IF NOT EXISTS `general_log` (
`event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
`user_host` mediumtext NOT NULL,
`thread_id` int(11) NOT NULL,
`server_id` int(10) unsigned NOT NULL,
`command_type` varchar(64) NOT NULL,
`argument` mediumtext NOT NULL
) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
для очистки использовать не drop table а truncate table.
Вариант 3: баги в дистрибутивах, в частности RHEL6, но должны подходить решения из 1 или 2 варианта.
Собставенно, использование этого лога в таблицу:
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
выключать потом
SET GLOBAL general_log = 'OFF';
По умолчанию пишет в файл, чего обычно более чем достаточно.
Линки
Спасибо, помогло.
ОтветитьУдалить