MySQL ibdata1佔用空間大 釋放MySQL ibdata1檔案的空間

來源:互聯網
上載者:User

標籤:mysql   資料庫   空間釋放   ibdata1   

                    MySQL ibdata1佔用空間大  釋放MySQL ibdata1檔案的空間


背景:最近公司一台伺服器警示,磁碟空間警示超閥值.  原來mysql資料庫資料目錄特別大,前一篇文章中介紹的是變更mysql資料檔案的目錄,此文主要介紹如何把mysql佔用的空間釋放出來。



說明: mysql有多種儲存引擎,比如MyISAM、InnoDB很常用。 如果用的InnoDB, 且使用mysql預設的設定檔,MySQL的資料都會存放在ibdata1檔案中,經過一段時間此檔案會變的非常大,佔用大量磁碟空間。如何把mysql佔用的空間釋放出來。


mysql ibdata1存放資料,索引等,是MYSQL的最主要的資料。

步驟:

1,備份資料庫

備份全部資料庫,執行命令mysqldump  -uusername -ppassword  --all-databases > /backup/all.sql 或者只備份需要的庫。



刪除資料庫
drop database A;
drop database B;



停止資料庫: service mysqld stop


2,修改mysql設定檔

修改my.cnf檔案,增加下面配置

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檔案了,它們在相應資料庫的檔案夾下面。

 


本文出自 “技術成就夢想” 部落格,請務必保留此出處http://pizibaidu.blog.51cto.com/1361909/1697016

MySQL ibdata1佔用空間大 釋放MySQL ibdata1檔案的空間

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.