首先,為什麼要這麼做呢,因為我工作於一個大型drupal項目,數據庫文件很大,而且每個新特性都在分支上進行開發,這樣意味著我需要搭建多個本地環境,並且經常需要刪除舊的分支,建立新的分支。
由於數據庫使用的大部分是InnoDB引擎,而InnoDB在分配了空間以後是不釋放,也不可以被重用的(這裡可能是我還沒找對方法),所以由於我這樣頻繁的建立和刪除數據庫導致了InnoDB的數據庫文件越來越大。所以決定給數據庫文件瘦身。
InnoDB的數據庫文件默認是公用ibdata1,在我本地已經達到17G之多,並且還在不斷變大。
以下是瘦身步驟,注意瘦身之前對原始的ibdata1文件做好備份。
1,在命令行或者PHPMyAdmin裡刪除不需要的數據庫。
2,備份所有的數據庫:
mysqldump -uDBuser -pPassword --quick --force --routines --add-drop-database --all-databases --add-drop-table > /your_backup_place/mysqldump.sql
這裡主要是看後面的可選參數,這個操作是備份的全部數據庫,如果本地數據庫較多,會很慢。當然導入的時候會更慢,我是為了省空間不得已為之,大家如果也有和我一樣的想法,使用本文的方案後果自負。
3,刪除ibdata1文件,導入時會自動建立的。其余數據庫不用管,因為導入時會先刪後建。
4,進入MYSQL命令行使用source命令進行導入。
最後,不管大家是否能執行成功,反正我是成功了。:)