ОШИБКА 1146 (42S02): Таблица "mysql.general_log" не существует
После обновления MySQL я получаю эту ошибку на моем окне Centos, когда я пытался включить general_log
, Любая идея?
SET GLOBAL general_log = 'ON';
ERROR 1146 (42S02) : Table 'mysql.general_log' doesn't exist
3 ответа
Я создал эту недостающую таблицу и работал на меня.
Войдите в консоль mysql
use mysql;
CREATE TABLE 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'
Когда вы попадаете в эту ситуацию, проблема заключается в обновлении MySQL и неправильном переносе каталога данных (например, /usr/local/var/mysql) в новую установку.
Таким образом, принятое выше решение решит вашу непосредственную проблему, но также указывает, что у вас могут быть и другие проблемы с установкой MySQL.
Просто дополнение к ответу Харикришнана! Мне пришлось изменить тип полей, чтобы работать с меня, так как MYSQL не мог записать в таблицу так:
- если general_log включен, выключите его
SET GLOBAL general_log= 0;
Создать таблицу
USE mysql; CREATE TABLE mysql.general_log( event_time TIMESTAMP(6) NOT NULL DEFAULT
CURRENT_TIMESTAMP(6) НА ОБНОВЛЕНИИCURRENT_TIMESTAMP(6), user_host MEDIUMTEXT NOT NULL, thread_id BIGINT(21)UNSIGNED NOT NULL, server_id INT(10) UNSIGNED NOT NULL, command_type VARCHAR(64) NOT NULL, argument MEDIUMBLOB NOT NULL ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
включить запись в журнал
SET GLOBAL general_log= 1;
Посмотреть журнал
SELECT * FROM mysql.general_log;