这涉及在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;
感谢任何潜在客户。
答案 0 :(得分:0)
一些有趣的手册条目,以了解这一点:
您可以检查服务器的配置方式
SHOW GLOBAL VARIABLES LIKE '%log%';
然后查找log-output
的值。这显示您是要登录到FILE
,TABLE
还是同时登录到这两者。
当它是FILE
时,请检查general_log_file
的值。这是日志文件在文件系统中的位置。您只需删除它,然后创建一个新文件(以防您再次想要启用general_log)。然后执行FLUSH LOGS;
。
当它为TABLE
时,您的TRUNCATE TABLE mysql.general_log;
语句是正确的。
关于您的第二个问题,永远不要弄乱mysql模式中的表。只是不要(如果您不知道自己在做什么)。而且我什至不知道你怎么想到这个。