1、清除mysql日志
如果想要關(guān)閉二進制mysql日志,可以在my.ini里把log-bin這行注釋掉 要清二進制日志的話,在mysql開啟了二進制日志的狀態(tài)下,以root身份登錄mysql以后執(zhí)行下面兩個命令之一:
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中設(shè)置了字符集的話,可能會出現(xiàn)這以下這樣的報錯 mysqlbinlog: unknown variable 'default-character-set=gbk' 帶上--no-defaults參數(shù)后即可解決 C:\>mysqlbinlog --no-defaults mysql-bin.000001 如果是要清理*.err日志的話,直接停止mysql數(shù)據(jù)庫,將這個文件剪切走或者刪除,重啟mysql生成一個新的即可。
2、查看mysql日志 查看當(dāng)前日志文件列表:show binary logs或是show master logs; 使用binlog日志的目的是為了方便恢復(fù)數(shù)據(jù),所以我們不光要會刪除,還要會用日志來恢復(fù)數(shù)據(jù)。
復(fù)制代碼代碼示例: mysql> show binary logs;
+----------------+-----------+ | Log_name | File_size | +----------------+-----------+ | ablelee.000001 | 150462942 | | ablelee.000002 | 125 | | ablelee.000003 | 106 | +----------------+-----------+ 3、mysql自動清理日志辦法
但沒有看到刪除的配置,在mysql里show了一下variables,
復(fù)制代碼代碼示例:
mysql> show variables like '%log%';
查到了 復(fù)制代碼代碼示例:
set global expire_logs_days=8;
這樣8天前的log就會被刪除了,如果有回復(fù)的需要,請做好備份工作,但這樣設(shè)置還不行,下次重啟mysql了,配置又恢復(fù)默認了,所以需在my.cnf中設(shè)置 復(fù)制代碼代碼示例:
expire_logs_days = 8 3、清空某個mysql表中所有內(nèi)容
delete from 表名; truncate table 表名; 不帶where參數(shù)的delete語句可以刪除mysql表中所有內(nèi)容,使用truncate table也可以清空mysql表中所有內(nèi)容。效率上truncate比delete快,但truncate刪除后不記錄mysql日志,不可以恢復(fù)數(shù)據(jù)。 delete的效果有點像將mysql表中所有記錄一條一條刪除到刪完,而truncate相當(dāng)于保留mysql表的結(jié)構(gòu),重新創(chuàng)建了這個表,所有的狀態(tài)都相當(dāng)于新表。 |
|
來自: peijs5201314 > 《Mysql》