释放mysql ibdata1文件_释放MySQL ibdata1文件的空间
在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 ibdata1文件的空间的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: mysql事务操作_mysql的事务操作
- 下一篇: c 连接mysql怎么增删改_C++ A