繁体   English   中英

截断MySql通用查询日志文件名

[英]MySql General Query Log File Name in Truncate

这涉及在Windows Server 2016上运行的MySQL 5.7。

我正在使用MySql中的TRUNCATE语句来减小大型日志文件(名为“ mySite.log”)的大小,该文件位于:

ProgramData/MySQL/MySQL Server 5.7/Data/

我研究并实现了以下内容:

mysql> SET GLOBAL general_log=OFF;

这成功了。

但是,我试图确定我在上述目录中看到的大型日志文件实际上是常规查询日志文件。 它将数据库的名称作为文件名(“ MySite.log”)的前缀,就像同一目录中的其他文件(.bin和.err,.pid)一样。 这个大的日志文件实际上是general_log文件吗? (如果使用MySQL Workbench,将在哪里设置日志文件的名称和存储位置?我似乎找不到它。)以下语法会截断日志文件吗?

mysql> TRUNCATE TABLE mysql.general_log;
  1. 即使日志存储在文件而不是数据库表中,也会使用“ TRUNCATE TABLE”吗?
  2. 是否需要从上面将“ mysql.general_log”重命名为“ myDatabase.mysite”以匹配我的“ MySite.log”文件的名称?

感谢您的潜在客户。

一些有趣的手册条目可以阅读以下内容:

您可以检查服务器的配置方式

SHOW GLOBAL VARIABLES LIKE '%log%';

然后寻找log-output的值。 这显示您是要登录到FILETABLE还是同时登录到这两者。

当它是FILE ,请检查general_log_file的值。 这是日志文件在文件系统中的位置。 您只需删除它,然后创建一个新文件(以防您再次想要启用general_log)。 然后执行FLUSH LOGS; 然后。

当它是TABLE则您的TRUNCATE TABLE mysql.general_log; 声明是正确的。

关于您的第二个问题,永远不要搞乱mysql模式中的表。 只是不要(如果您不知道自己在做什么)。 而且我什至不知道你怎么想到这个想法。

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM