mmd*_*bas 15 mysql mysql-error-1146
我启用日志记录使用:
SET GLOBAL log_output = 'TABLE';
SET GLOBAL general_log = 'ON';
Run Code Online (Sandbox Code Playgroud)
所有执行的查询都记录到mysql.general_log表中.没事.
然后表变大了,我想删除表中的所有记录.我执行了:
DELETE FROM general_log
Run Code Online (Sandbox Code Playgroud)
但这导致了一个错误,表示我无法锁定日志表.所以,我在禁用日志记录后删除了表格:
SET GLOBAL general_log = 'OFF';
DROP TABLE general_log;
Run Code Online (Sandbox Code Playgroud)
我希望再次启用日志记录会创建表,但我无法启用它.当我执行这个:
SET GLOBAL general_log = 'ON';
Run Code Online (Sandbox Code Playgroud)
它给出了这个错误:
表'mysql.general_log'不存在
mysql.general_log?mysql.general_log无痛的方式安全地清除?pQd*_*pQd 19
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';
Run Code Online (Sandbox Code Playgroud)
TRUNCATE table mysql.general_log;
Run Code Online (Sandbox Code Playgroud)
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;
Run Code Online (Sandbox Code Playgroud)
2:
TRUNCATE mysql.general_log;
Run Code Online (Sandbox Code Playgroud)
这是更新的版本,2012年的答案不再起作用:
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'
Run Code Online (Sandbox Code Playgroud)
我已经放弃了 mysql.general_log桌子,但其他答案对我没有帮助。
然后,我注意到有关表结构的错误,因为它在 MySQL 5.7.18,所以我更改了一些字段,现在它可以工作了。
如果有人需要它:
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'
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
7453 次 |
| 最近记录: |