mysql如何在线优雅的清理慢日志
今天上班之后发现跑的sql出现了错误,一开始以为是sql的原因,查看了具体日志后,报错信息为
no space left on device(路径)
意思就是没有充足的空间了
于是查看了服务器磁盘内存,果然发现有一个盘使用了99%
根据路径查看,发现mysql目录下的mysql-slow.log 占用了很大的空间
于是通过查资料,解决了这一问题,跟大家分享一下
首先进入mysql,查看慢日志状态
显示mysql_query_log是开启的状态
1、先关闭slow_query_log
set global slow_query_log=0;
2、
show variables like '%slow%';
3、设置slow_query_log_file 的路径,放到大一点的磁盘下
set global slow_query_log_file='目标路径'; **需要注意的是目标路径以及.log文件必须提前设置好**
4、开启慢日志并查看
set global slow_query_log=0;
show variables like '%slow%';
这样就重新开起来了,然后测试一下
select sleep(11) as a ;
监控设置后的日志,如果出现上述sql,证明设置成功
然后就解决根本问题,把占内存大的mysql-slow.log文件删除,释放内存,免得跑作业又报错
找到日志文件,可以直接删除,也可以只清空内容
rm -f mysql-slow.log | > mysql-slow.log
欧耶,完成