这涉及到在WindowsServer2016上运行的MySQL5.7。
我正在使用mysql中的truncate语句来减小大型日志文件(名为“mysite.log”)的大小,该文件位于:
ProgramData/MySQL/MySQL Server 5.7/Data/
我研究并实施了以下内容:
mysql> SET GLOBAL general_log=OFF;
这是成功的。
但是,我试图确定我在上述目录中看到的大日志文件实际上是常规查询日志文件。它以数据库名称作为文件名的前缀(“mysite.log”),就像同一目录中的其他文件(.bin和.err,.pid)一样。这个大的日志文件实际上是普通的日志文件吗(如果使用mysql workbench,日志文件的命名和存储位置将在哪里设置?下面的语法会截断日志文件吗?
mysql> TRUNCATE TABLE mysql.general_log;
即使日志存储在文件中而不是数据库表中,是否也会使用“truncate table”?
是否需要将“mysql.general\u log”重命名为“mydatabase.mysite”,以匹配上面的“mysite.log”文件名?
谢谢你的线索。
1条答案
按热度按时间v440hwme1#
阅读一些有趣的手册条目:
5.4.1选择一般查询和慢速查询日志输出目的地
5.4.3通用查询日志
您可以检查服务器是如何配置的
然后寻找
log-output
. 显示您是否正在登录FILE
,TABLE
或者两者兼而有之。当它是
FILE
,检查general_log_file
. 这就是日志文件在文件系统中的位置。您只需删除它,然后创建一个新文件(以防您再次启用常规日志)。然后执行FLUSH LOGS;
之后。当它是
TABLE
然后你的TRUNCATE TABLE mysql.general_log;
陈述是正确的。关于第二个问题,千万不要弄乱mysql模式中的表。只是不要(如果你不知道你在做什么)。我也不知道你是怎么想到的。