釋放MySQL ibdata1檔案的空間

2021-06-19 02:09:22 字數 951 閱讀 3237

在mysql資料庫中,如果不指定innodb_file_per_table引數,單獨存在每個表的資料,mysql的資料都會存放在ibdata1檔案。

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

步驟:1,備份資料庫

從命令列進入mysql server 5.1/bin

備份全部資料庫,執行命令mysqldump -q -uusername -pyourpassword --add-drop-table --all-databases > /backup/all.sql

除資料庫

drop database db1;

drop database db2;

此處不刪除應用資料庫,在全庫恢復資料庫時,就會報異常錯誤,一些表的*.ibd會報不存在。

解決方式:

movo db1 /backup/db1_bak

movo db2 /backup/db2_bak

做完此步後,然後停止資料庫。

2,修改mysql配置檔案

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

innodb_file_per_table

對每張表使用單獨的innodb檔案, 修改/etc/my.cnf檔案

3,刪除原資料檔案

刪除原來的ibdata1檔案及日誌檔案ib_logfile*,刪除data目錄下的應用資料庫資料夾(mysql,test,information_schema資料庫本身資料夾不要刪除)

4,還原資料庫

啟動資料庫服務

從命令列進入mysql server 5.1/bin

還原全部資料庫,執行命令mysql -uusername -pyourpassword < /all.sql

大公告成。

經過以上幾步後,可以看到新的ibdata1檔案就只有幾十m了,資料及索引都變成了針對單個表的小ibd檔案了,它們在相應資料庫的資料夾下面。

釋放MySQL ibdata1檔案的空間

在mysql資料庫中,如果不指定innodb file per table引數,單獨存在每個表的資料,mysql的資料都會存放在ibdata1檔案。mysql ibdata1存放資料,索引等,是mysql的最主要的資料。步驟 1,備份資料庫 從命令列進入mysql server 5.1 bin 備份...

mysql ibdata1檔案的縮小 釋放磁碟空間

mysql ibdata1檔案存放資料,索引等。如果不把資料庫中資料分開存放的話,這個檔案的大小很容易就上了g,甚至幾十g。對於某些應用 磁碟較小的server來說,並不是太合適。因此要把此檔案縮小。方法 資料檔案單獨存放。詳見 步驟 1,備份資料庫 從命令列進入mysql server 5.5 b...

mysql ibdata1檔案的縮小

mysql ibdata1檔案的縮小 2009 12 22 15 29 46 標籤 it mysql ibdata1存放資料,索引等,是mysql的最主要的資料。如果不把資料分開存放的話,這個檔案的大小很容易就上了g,甚至10 g。對於某些應用來說,並不是太合適。因此要把此檔案縮小。方法 資料檔案單...