ERROR 1146(42S02):表' mysql.general_log'不存在

时间:2014-04-03 10:04:22

标签: mysql centos upgrade general-log

在mysql升级后,当我尝试启用general_log时,我在Centos框中收到此错误。有什么想法吗?

SET GLOBAL general_log = 'ON';

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

3 个答案:

答案 0 :(得分: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'

答案 1 :(得分:2)

如果您发现自己处于这种情况,那么您的问题已经完成了MySQL升级,并错误地将数据库(例如/ usr / local / var / mysql)传输到新安装。

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

答案 2 :(得分:0)

只是对 Harikrishnan的答案的补充! 我必须改变字段类型才能使用,因为MYSQL无法写入表格,所以:

  1. 如果启用了general_log,请将其关闭SET GLOBAL general_log= 0;
  2. 创建表格 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';

  3. 重新启用记录SET GLOBAL general_log= 1;

  4. 查看日志SELECT * FROM mysql.general_log;