>데이터 베이스 >MySQL 튜토리얼 >mysql清除日志以及mysql清空表的方法介绍

mysql清除日志以及mysql清空表的方法介绍

WBOY
WBOY원래의
2016-06-07 16:14:371011검색

如果想要关闭二进制mysql日志,可以在my.ini里把log-bin这行注释掉 要清二进制日志的话,在mysql开启了二进制日志的状态下,以root身份登录mysql以后执行下面两个命令之一: PURGE MASTER LOGS before '2020-1-1'; 清除指定日期之前的二进制日志 PURGE MASTER

如果想要关闭二进制mysql日志,可以在my.ini里把log-bin这行注释掉
要清二进制日志的话,在mysql开启了二进制日志的状态下,以root身份登录mysql以后执行下面两个命令之一:
PURGE MASTER LOGS before '2020-1-1'; 清除指定日期之前的二进制日志
PURGE MASTER LOGS TO 'mysql-bin.010'; 清除指定文件编号之前的二进制日志
注意,如果没运行命令而是直接删除mysql-bin.xxx文件的话,mysql-bin.index里仍然记录了日志文件列表,这样以后再清日志时,就会因找不到列表中的日志文件而无法清理mysql日志
可以用bin目录中的mysqlbinlog.exe查看mysql二进制日志。
C:\>mysqlbinlog mysql-bin.000001
如果my.ini中设置了字符集的话,可能会出现这以下这样的报错
mysqlbinlog: unknown variable 'default-character-set=gbk'
带上--no-defaults参数后即可解决
C:\>mysqlbinlog --no-defaults mysql-bin.000001
如果是要清理*.err日志的话,直接停止mysql数据库,将这个文件剪切走或者删除,重启mysql生成一个新的即可。


2.清空某个mysql表中所有内容

delete from 表名;
truncate table 表名;

不带where参数的delete语句可以删除mysql表中所有内容,使用truncate table也可以清空mysql表中所有内容。效率上truncate比delete快,但truncate删除后不记录mysql日志,不可以恢复数据。
delete的效果有点像将mysql表中所有记录一条一条删除到删完,而truncate相当于保留mysql表的结构,重新创建了这个表,所有的状态都相当于新表。

성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.