ОШИБКА 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 не мог записать в таблицу так:

  1. если general_log включен, выключите его SET GLOBAL general_log= 0;
  2. Создать таблицуUSE mysql; CREATE TABLE mysql.general_log( event_time TIMESTAMP(6) NOT NULL DEFAULTCURRENT_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';

  3. включить запись в журнал SET GLOBAL general_log= 1;

  4. Посмотреть журнал SELECT * FROM mysql.general_log;

Другие вопросы по тегам