【问题标题】:ERROR 1146 (42S02): Table 'mysql.general_log' doesn't exist错误 1146 (42S02): 表 'mysql.general_log' 不存在
【发布时间】:2014-05-15 01:57:48
【问题描述】:

在 mysql 升级后,当我尝试启用 general_log 时,我的 Centos 机器上出现此错误。有什么想法吗?

SET GLOBAL general_log = 'ON';

ERROR 1146 (42S02) : Table 'mysql.general_log' doesn't exist

【问题讨论】:

    标签: mysql centos upgrade general-log


    【解决方案1】:

    我已经创建了那个丢失的表并为我工作。

    登录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'
    

    【讨论】:

      【解决方案2】:

      当您发现自己处于这种情况时,您的问题是您已完成 MySQL 升级并错误地将数据目录(例如 /usr/local/var/mysql)转移到新安装。

      所以上面接受的解决方案将解决您的直接问题,但它也表明您的 MySQL 安装可能还有其他问题。

      【讨论】:

        【解决方案3】:

        只是 Harikrishnan 的 答案的补充! 由于 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;

        【讨论】:

          猜你喜欢
          • 1970-01-01
          • 1970-01-01
          • 2020-04-13
          • 2021-12-06
          • 1970-01-01
          • 1970-01-01
          • 2014-05-27
          • 2019-02-12
          • 2020-01-05
          相关资源
          最近更新 更多