`

[转载]释放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 ibdata文件恢复工具 2.1

    MYSQL数据库碎片恢复工具,已经完工。专门针对MYSQL的ibdata1 引擎 编写,支持MYSQL 3 4 5 6版本,任意平台的IBDATA文件恢复。支持误删除 ,所在分区被格式化,支持黑客故意破坏等情况,自动侦测半页。提取合成。

    完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)

    下面小编就为大家带来一篇完美解决mysql启动后随即关闭的问题(ibdata1文件损坏导致)。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧

    MYSQL ibdata文件恢复工具

    MYSQL数据库碎片恢复工具,已经完工。专门针对MYSQL的ibdata1 引擎 编写,支持MYSQL 3 4 5 6版本,任意平台的IBDATA文件恢复。支持误删除 ,所在分区被格式化,支持黑客故意破坏等情况,自动侦测半页。提取合成

    MySQL问答系列之如何避免ibdata1文件大小暴涨

    ibdata1是一个用来构建innodb系统表空间的文件,这个文件包含了innodb表的元数据、撤销记录、修改buffer和双写buffer。如果file-per-table选项打开的话,该文件则不一定包含所有表的数据。当innodb_file_per_table...

    MySQL的InnoDB扩容及ibdata1文件瘦身方案完全解析

    在使用InnoDB存储引擎后,MySQL的ibdata1文件常常会占据大量存储空间,这里我们就为大家带来MySQL的InnoDB扩容及ibdata1文件瘦身方案完全解析:

    mysql 误删除ibdata1之后的恢复方法

    如果误删除了在线服务器中mysql innodb相关的数据文件ibdata1以及日志文件 ib_logfile*,应该怎样恢复呢

    mysql Unable to lock ./ibdata1, error: 11

    NULL 博文链接:https://yizhilong28.iteye.com/blog/1154092

    MySQL启动报错问题InnoDB:Unable to lock/ibdata1 error

    主要介绍了MySQL启动报错问题InnoDB:Unable to lock/ibdata1 error,文中通过示例代码介绍的非常详细,对大家的学习或者工作具有一定的参考学习价值,需要的朋友可以参考下

    使用ibdata和frm文件恢复MySQL数据库.docx

    使用ibdata和frm文件恢复MySQL数据库

    详解MySQL中InnoDB的存储文件

    从物理意义上来讲,InnoDB表由共享表空间文件(ibdata1)、独占表空间文件(ibd)、表结构文件(.frm)、以及日志文件(redo文件等)组成。 1、表结构文件 在MYSQL中建立任何一张数据表,在其数据目录对应的数据库...

    MySql .frm数据库文件导入的问题

    可是,有些时候这样不行,查询的时候会出现某某表不存在的问题,在确认.frm ,db.opt 文件完整的情况下,那么这种表使用的应该是innodb表引擎,应该将数据目录中的innodb数据文件(默认ibdata1) 也一并复制过来。...

    创建mysql表分区的方法

    表分区是最近才知道的哦 ,以前自己做都是分表来实现上亿级别的数据了...INNODB engine对应的表物理存储文件innodb的数据库的物理文件结构为:.frm文件.ibd文件和.ibdata文件:这两种文件都是存放innodb数据的文件,之

    MySQL数据库InnoDB引擎下服务器断电数据恢复方法

    2、如果有数据库或数据表使用了InnoDB引擎,恢复的时候,必须连同MySQL数据库目录下的ibdata1文件一起拷贝过来。 解决办法: 1、停止MySQL服务 service mysqld stop 2、找之前的备份数据库文件 cd /home/mysql_bak/m

    php+mysql图书管理系统.zip

    将bms和mysql整个文件夹和ibdata1复制粘贴到xampp安装路径下的mysql文件夹里的data文件夹里面, 如我的路径即是D:\xampp\mysql\data\bms,接着打开XMAPP,然后再打开浏览器输入 网址http://localhost/phpmyadmin/...

    关于MySQL数据迁移–data目录直接替换注意事项的详解

    然后,服务器A锁住全部表,从服务器A将整个data目录和数据文件直到拷贝到服务器B上,修改服务器B上MySQL的my.cnf文件中的datadir指向新的data目录。最后,启动服务器B上的MySQL服务。结果启动失败,报出 “无法启动...

    UNIX下MySQL 备份和恢复

    目前 MySQL 支持的免费...Innodb 所有的表都保存在同一个数据文件 ibdata1 中(也可能是多个文件,或者是独立的表空间文件),相对来说比较不好备份,免费的方案可以是拷贝数据文件、备份 binlog,或者用 mysqldump。

Global site tag (gtag.js) - Google Analytics