數(shù)據(jù)庫(kù)總表 ibdata1文件占用,怎么清理呢?
mysql自帶的數(shù)據(jù)庫(kù)。建議保留。
數(shù)據(jù)庫(kù)變大不是好事嗎?不是代表業(yè)務(wù)變多 嗎?難道數(shù)據(jù)庫(kù)對(duì)你們來(lái)說(shuō)只有1m才能滿(mǎn)意嗎?占點(diǎn)磁盤(pán)空間怎么了?站在運(yùn)維角度上數(shù)據(jù)是無(wú)價(jià)的
如果執(zhí)意要?jiǎng)h除,參考下面
接下來(lái)的配置就是為了解決這個(gè)問(wèn)題。
1、先停止所有訪問(wèn)數(shù)據(jù)庫(kù)的服務(wù);2、導(dǎo)出數(shù)據(jù)文件;
mysqldump -u root -p dbname| gzip > dbname.sql.gz該命令會(huì)將數(shù)據(jù)庫(kù)壓縮導(dǎo)出,會(huì)慢點(diǎn),如果你數(shù)據(jù)庫(kù)并不大的話,可以不用壓縮,那么就是:
mysqldump -u root -p dbname > dbname.sql3、修改mysql配置;
vi /etc/mysql/my.cnf在[mysqld]下添加一行:
innodb_file_per_table并刪除數(shù)據(jù)庫(kù)所在路徑中的ibdata1及兩個(gè)log文件。然后重新啟動(dòng)數(shù)據(jù)庫(kù):
service mysql restart接下來(lái)登進(jìn)數(shù)據(jù)庫(kù),使用以下命令查看配置是否生效:
show variables like '%per_table%';如果輸出結(jié)果為on,那么配置已經(jīng)修改成功;4、導(dǎo)入原來(lái)的數(shù)據(jù)登入數(shù)據(jù)庫(kù)后執(zhí)行:
source dbname.sql或者不登錄mysql執(zhí)行:
mysqldump -uroot -p dbname < dbname.sql;導(dǎo)入完成后即可發(fā)現(xiàn),ibdata1這個(gè)文件已經(jīng)不怎么增長(zhǎng)了,所有數(shù)據(jù)表的數(shù)據(jù)都會(huì)存在他自己目錄下的同名db文件中,這時(shí)候清理表數(shù)據(jù)后,空間占用也會(huì)相應(yīng)的減小。