MySQL ibdata1佔用空間大 釋放MySQL ibdata1文件的空間

                  


背景:最近公司一臺服務器報警,磁盤空間報警超閥值.  原來mysql數據庫數據目錄特別大,前一篇文章中介紹的是變動mysql數據文件的目錄,此文主要介紹如何把mysql佔用的空間釋放出來。mysql



說明: mysql有多種存儲引擎,好比MyISAMInnoDB很經常使用。 若是用的InnoDB, 且使用mysql默認的配置文件,MySQL的數據都會存放在ibdata1文件中,通過一段時間此文件會變的很是大,佔用大量磁盤空間。如何把mysql佔用的空間釋放出來。sql


mysql ibdata1存放數據,索引等,是MYSQL的最主要的數據。數據庫

步驟:服務器

1,備份數據庫ide

備份所有數據庫,執行命令mysqldump  -uusername -ppassword  --all-databases > /backup/all.sql 或者只備份須要的庫。spa



刪除數據庫
drop database A;
drop database B;日誌



中止數據庫: service mysqld stop
orm


2,修改mysql配置文件索引

修改my.cnf文件,增長下面配置it

innodb_file_per_table

對每張表使用單獨的innoDB文件, 修改/etc/my.cnf文件



3,刪除原數據文件

刪除原來的ibdata1文件及日誌文件ib_logfile*,刪除data目錄下的應用數據庫文件夾(mysql,test,information_schema數據庫自己文件夾不要刪除)


4,還原數據庫

啓動數據庫服務service mysqld start

還原所有數據庫,執行命令mysql -uusername -ppassword <all.sql



通過以上幾步後,能夠看到新的ibdata1文件就只有幾十M了,數據及索引都變成了針對單個表的小ibd文件了,它們在相應數據庫的文件夾下面。

相關文章
相關標籤/搜索