I dropped general_log table, how do I create it again?

前端 未结 6 1649
渐次进展
渐次进展 2021-01-31 06:16

Logging enabled

I enabled logging using:

SET GLOBAL log_output = \'TABLE\';
SET GLOBAL general_log = \'ON\';

All executed queries was lo

相关标签:
6条回答
  • 2021-01-31 06:22

    Recreate table in MySQL 8.0.17:

    use mysql;
    CREATE TABLE general_log(
    event_time timestamp(6) NOT NULL ,
    user_host mediumtext NOT NULL,
    thread_id bigint(21) unsigned NOT NULL,
    server_id int unsigned NOT NULL,
    command_type varchar(64) NOT NULL,
    argument mediumblob NOT NULL
    ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log';
    
    0 讨论(0)
  • 2021-01-31 06:25

    MySQL 5.7.18

    I have dropped the mysql.general_log table too, but the other answers did not help me.

    Then, I noticed errors about the table structure cause it's a bit different on MySQL 5.7.18, so I have changed some field and now it works.

    In case anybody needs it:

    CREATE TABLE `general_log` (
      `event_time` timestamp(6) NOT NULL DEFAULT CURRENT_TIMESTAMP(6) ON UPDATE 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
    ) ENGINE=MyISAM DEFAULT CHARSET=utf8 COMMENT='General log'
    
    0 讨论(0)
  • 2021-01-31 06:28

    This is the updated version, the 2012 answers do not work anymore:

    CREATE TABLE mysql.general_log (
      `event_time` timestamp NOT NULL DEFAULT CURRENT_TIMESTAMP ON UPDATE CURRENT_TIMESTAMP,
      `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` mediumtext NOT NULL
    ) ENGINE=CSV DEFAULT CHARSET=utf8 COMMENT='General log'
    
    0 讨论(0)
  • 2021-01-31 06:31

    Ok, having first hand experience, this is what worked for me, if your table gets corrupted by any reason whatsoever, works with MySQL 5.6.11

    use mysql;
    SET GLOBAL general_log = 'OFF';
    
    DROP TABLE general_log;
    
    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` bigint(21) unsigned NOT NULL,  -- Be careful with this one.
      `server_id` int(10) unsigned NOT NULL,
      `command_type` varchar(64) NOT NULL,
      `argument` mediumtext NOT NULL
    );
    
    SET GLOBAL general_log = 'ON';
    
    SET GLOBAL log_output = 'TABLE';
    
    select * from mysql.general_log
    order by event_time desc;
    
    0 讨论(0)
  • 2021-01-31 06:34

    Recreate:

    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';
    

    Clear table:

    TRUNCATE table mysql.general_log;
    
    0 讨论(0)
  • 2021-01-31 06:44

    For 1.:

    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
    )
    COMMENT='General log'
    COLLATE='utf8_general_ci'
    ENGINE=CSV;
    

    For 2.:

    TRUNCATE mysql.general_log;
    
    0 讨论(0)
提交回复
热议问题