1.Mysql數(shù)據(jù)庫(kù)清空表的實(shí)現(xiàn)方法。
方法1:重建庫(kù)和表
用mysqldump --no-data把建表SQL導(dǎo)出來(lái),然后drop database再create database,執(zhí)行一下導(dǎo)出的SQL文件,把表建上;
方法2:生成清空所有表的SQL
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'"
輸出結(jié)果如下:
TRUNCATE TABLE AUTHGROUPBINDINGS;
TRUNCATE TABLE AUTHGROUPS;
TRUNCATE TABLE AUTHUSERS;
TRUNCATE TABLE CORPBADCUSTOMINFO;
TRUNCATE TABLE CORPSMSBLACKLISYInfo;
TRUNCATE TABLE CORPSMSFILTERINFO;
TRUNCATE TABLE CORPSMSINFO;
TRUNCATE TABLE EABASEREGINFOS;
TRUNCATE TABLE EACORPBLOB;
TRUNCATE TABLE EACORPINFO;
....
....
這樣就更完善了:
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql eab12
即清空eab12中所有的表。
但是如果有外鍵的話,很可能會(huì)報(bào)錯(cuò)。因此還需要加個(gè)-f
mysql -N -s information_schema -e "SELECT CONCAT('TRUNCATE TABLE ',TABLE_NAME,';') FROM TABLES WHERE TABLE_SCHEMA='eab12'" | mysql -f eab12
多執(zhí)行幾次,直到不報(bào)錯(cuò)。
以上就是Mysql清空表的實(shí)現(xiàn)方法。
2.查看和清除mysq數(shù)據(jù)庫(kù)日志
如果想要關(guān)閉二進(jìn)制mysql日志,可以在my.ini里把log-bin這行注釋掉
要清二進(jìn)制日志的話,在mysql開(kāi)啟了二進(jìn)制日志的狀態(tài)下,以root身份登錄mysql以后執(zhí)行下面兩個(gè)命令之一:
PURGE MASTER LOGS before '2020-1-1'; 清除指定日期之前的二進(jìn)制日志
PURGE MASTER LOGS TO 'mysql-bin.010'; 清除指定文件編號(hào)之前的二進(jìn)制日志
注意,如果沒(méi)運(yùn)行命令而是直接刪除mysql-bin.xxx文件的話,mysql-bin.index里仍然記錄了日志文件列表,這樣以后再清日志時(shí),就會(huì)因找不到列表中的日志文件而無(wú)法清理mysql日志
可以用bin目錄中的mysqlbinlog.exe查看mysql二進(jìn)制日志。
C:/>mysqlbinlog mysql-bin.000001
如果my.ini中設(shè)置了字符集的話,可能會(huì)出現(xiàn)這以下這樣的報(bào)錯(cuò)
mysqlbinlog: unknown variable 'default-character-set=gbk'
帶上--no-defaults參數(shù)后即可解決
C:/>mysqlbinlog --no-defaults mysql-bin.000001
如果是要清理*.err日志的話,直接停止mysql數(shù)據(jù)庫(kù),將這個(gè)文件剪切走或者刪除,重啟mysql生成一個(gè)新的即可。
.err文件中實(shí)際是以文本方式保存的錯(cuò)誤提示,可以直接用記事本打開(kāi)查看。