4

mysql 升级后,当我尝试启用general_log. 任何的想法?

SET GLOBAL general_log = 'ON';

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

4

3 回答 3

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'
于 2014-04-03T10:06:11.797 回答
2

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

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

于 2015-01-30T12:47:21.657 回答
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 DEFAULTCURRENT_TIMESTAMP(6) ON UPDATECURRENT_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;

于 2017-04-27T06:55:38.767 回答