如何在mysql中刷新mysql.slow_日志表中的数据?

如何在mysql中刷新mysql.slow_日志表中的数据?,mysql,mysql-workbench,mysql-slow-query-log,Mysql,Mysql Workbench,Mysql Slow Query Log,您好,我正在使用MySQL 5.5版,有人能帮我清除/刷新MySQL中MySQL.slow\u日志表中的数据吗?如果您使用的是linux > mysql -uroot -p > enter your password > use mysql; > delete from slow_log; 它会给你一个错误,你不能锁定日志表。解决方法是,运行以下查询: SET GLOBAL slow_log= 'OFF'; RENAME TABLE slow_log TO genera

您好,我正在使用MySQL 5.5版,有人能帮我清除/刷新MySQL中MySQL.slow\u日志表中的数据吗?

如果您使用的是linux

> mysql -uroot -p
> enter your password
> use mysql;
> delete from slow_log;
它会给你一个错误,你不能锁定日志表。解决方法是,运行以下查询:

SET GLOBAL slow_log= 'OFF';
RENAME TABLE slow_log TO general_log_temp;
DELETE FROM `general_log_temp`;
RENAME TABLE general_log_temp TO slow_log ;
SET GLOBAL slow_log = 'ON';
取自

更新:

您可以像这样截断表
TRUNCATE mysql.slow_log
如Renato Liibke所述

您可以通过使用内置的旋转功能避免锁定问题,而无需禁用slow log:

CALL mysql.rds_rotate_slow_log;
DELETE FROM mysql.slow_log_backup;
这将交换“slow_log”和“slow_log_backup”表,将所有要清除的数据移动到非锁定的“slow_log_backup”表中,该表将愉快地从中删除数据以进行数据清除

您也可以只调用旋转两次:

CALL mysql.rds_rotate_slow_log;
CALL mysql.rds_rotate_slow_log;

TRUNCATE mysql.slow\u log

来自Mysql文档:

TRUNCATE TABLE是对日志表的有效操作。它可以用来使日志项过期。

对我来说,这是有效的:

SET GLOBAL slow_query_log= 'OFF';
RENAME TABLE slow_log TO general_log_temp;
DELETE FROM `general_log_temp`;
RENAME TABLE general_log_temp TO slow_log ;
SET GLOBAL slow_query_log = 'ON';

从慢速日志中删除记录时出现错误“错误代码:1556。无法对日志表使用锁”。从mysql中删除记录时出现另一个错误。常规日志临时错误代码:1175。您正在使用安全更新模式,并且您试图更新一个不带WHERE的表,该表使用键列禁用安全模式,请切换Preferencesunknown系统变量“slow_log”?@LennartRolland中的选项,这是一个表。使用
use mysql
选择mysql数据库,并且有一个名为的表,您可以使用此查询
显示类似“%slow\u log%”的表来验证它。
选择mysql数据库后,请参见非常简单和有用的方法,伙计。我只是不明白你为什么到现在还没有得到选票。非常感谢+1正是我要找的!这个问题会被贴上RDS标签吗?你会得到很多的投票。这太漂亮了!感谢分享这个小宝贝,我不知道RDS有自己的存储过程;然后以下错误显示:错误1305(42000):过程mysql.rds\u rotate\u slow\u log不存在;MySQL版本14.14发行版5.7.20这个答案不应该在顶部吗?