Innodb數據庫對於已經刪除的數據只是標記為刪除,並不真正釋放所占用的磁盤空間,這就導致InnoDB數據庫文件不斷增長。
如果需要徹底釋放磁盤空間,則需要先導出數據,然後刪除數據文件,最後導入數據。具體步驟如下:
備份數據庫批處理命令:
..\bin\mysqldump -uroot -proot -P3306 -h127.0.0.1 --default-character-set=gb2312 數據庫名稱 > 數據庫備份.sql
還原數據庫批處理命令:
..\bin\mysql -uroot -proot -P3306 -h127.0.0.1 --default-character-set=gb2312 < 數據庫備份.sql
echo. & pause(加這句是為了看到批處理執行結果)
如果在導入數據時報錯:“No database selected” ,那麼需要在mysqldump.sql腳本最前面加入“use 數據庫名稱;”
如果想徹底釋放這些已經刪除的數據,需要把數據庫導出,刪除InnoDB數據庫文件,然後再倒入。 下面是基本的步驟:1 使用mysqldump命令將InnoDB數據庫導出2 停止MySQL3 刪除所有InnoDB數據庫文件和日志4 啟動MySQL並自動重建InnoDB數據庫文件和日志文件5 導入前面備份的數據庫文件有一點要注意,你配置了MySQL數據庫復制,當你導入數據庫備份文件的時候,所有的Query都可能會被寫入Binlog,可以執行SET SQL_LOG_BIN = 0;暫時停止Binlog的寫入。
mysql innodb主空間是只能增大不能減小的,但是刪除一個表後,這個表在這個空間中占用的空間會被釋放,但這個文件的大小不會減小