`
hejiajunsh
  • 浏览: 407236 次
  • 性别: Icon_minigender_1
  • 来自: 天津
社区版块
存档分类
最新评论

mysql ibdata1文件的缩小-释放磁盘空间

阅读更多

 

mysql ibdata1文件存放数据,索引等。

如果不把数据库中数据分开存放的话,这个文件的大小很容易就上了G,甚至几十G。对于某些应用、磁盘较小的server来说,并不是太合适。因此要把此文件缩小。

方法:数据文件单独存放。

 

详见:http://dev.mysql.com/doc/refman/5.1/zh/database-administration.html#backup

 

步骤:

1,备份数据库

从命令行进入MySQL Server 5.5/bin
备份全部数据库,执行命令mysqldump -q -uusername -pyourpassword --add-drop-table --all-databases > /all.sql

做完此步后,停止数据库服务。

2,修改mysql配置文件

修改my.ini文件,增加下面配置

iinnodb_file_per_table = 1

对每张表使用单独的innoDB文件, 修改/etc/my.cnf文件

3,删除原数据文件

删除原来的ibdata1文件及日志文件ib_logfile*,删除data目录下的应用数据库文件夹(mysql文件夹不要删)

4,还原数据库

启动数据库服务

从命令行进入MySQL Server 5.5/bin
还原全部数据库,执行命令mysql -uusername -pyourpassword < /all.sql

经过以上几步后,可以看到新的ibdata1文件就只有几十M了,数据及索引都变成了针对单个表的小ibd文件了,它们在相应数据库的文件夹下面。

 

注:目前还没有找到不导出数据再导入,直接缩小ibdata文件体积的办法。对于ibdata文件有坏道、表空间有损坏的数据库来说,只能跳过损坏的id,dump出数据成sql文件,再导入了。

 

分享到:
评论

相关推荐

    MYSQL ibdata文件恢复工具 2.1

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

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

    当MySQL服务尝试启动时,如果`ibdata1`文件损坏,它将无法正常完成初始化过程,从而导致服务立即关闭。从给出的错误日志中,我们可以看到一些关键信息: 1. 错误日志显示MySQL尝试启动并加载InnoDB存储引擎。 2. 在...

    Mysql InnoDB删除数据后释放磁盘空间的方法

    然而,这也会导致数据库文件持续增大,即使数据已被删除,占用的磁盘空间仍然没有释放。 为了解决这个问题,一种有效的方法是在创建数据库时启用`innodb_file_per_table`选项。这个参数使得每个InnoDB表拥有独立的...

    MYSQL ibdata文件恢复工具

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

    mysql Unable to lock ./ibdata1, error: 11

    标题“mysql Unable to lock ./ibdata1, error: 11”所反映的问题是MySQL数据库在运行过程中遇到了一个常见的错误,提示无法锁定数据文件`ibdata1`,错误代码11。这个错误通常与数据库的表空间管理、并发操作或者...

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

    这个问题通常表明MySQL的InnoDB存储引擎无法获取对`ibdata1`文件的锁,`ibdata1`是InnoDB用来存储数据和系统表空间的文件。这个错误可能是由于多种原因导致的,包括但不限于以下几点: 1. **另一个mysqld进程正在...

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

    MySQL的InnoDB存储引擎在处理大量数据时,其系统表空间文件`ibdata1`往往会变得非常庞大,占据了大量硬盘空间。本篇文章将全面解析如何对InnoDB进行扩容以及如何瘦身`ibdata1`文件。 ### InnoDB扩容 扩容InnoDB表...

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

    MySQL 数据库是当前最流行的开源关系数据库管理系统之一,但是在实际使用中,可能会遇到各种问题,例如磁盘空间不足、服务器崩溃、数据库无法启动等问题,这些问题可能会导致数据库无法连接,数据无法导出。...

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

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

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

    MySQL数据库的InnoDB存储引擎使用一个名为`ibdata1`的数据文件来存储表数据和索引,以及系统表空间信息。当这个文件被意外删除时,可能会引发严重的数据丢失问题,尤其是在没有最近备份的情况下。然而,如果MySQL...

    mysql服务启动问题

    - 找到配置MySQL服务器时指定的`InfoDB`目录,并删除其中的`ibdata1`文件。 - 在`my.ini`文件中可以通过以下设置查找该目录: ```ini #***INNODBSpecificoptions*** innodb_data_home_dir="D:/" ``` - `...

    mysql启动-连接失败两例.txt

    `ibdata1` 是 MySQL 使用的 InnoDB 表空间文件,包含了表空间的元数据以及其他关键信息。 **问题分析** - **文件缺失**:日志信息显示 `ibdata1` 文件被误删除或者移动到了其他位置。由于 `ibdata1` 文件对于 ...

    centos7安装mysql8以及常规操作.txt

    centos7安装mysql8以及常规操作 ------------------------------------- [root@...opt]# vi /etc/my.cnf [mysqld] socket=/var/lib/mysql/mysql...innodb_data_file_path=ibdata1:1G;ibdata2:1G;ibdata3:1G:autoextend

    MySQL数据库文件介绍及存放位置

    - **ibdata1、ibdata2等文件**:系统表空间文件,存储InnoDB系统信息以及所有用户数据库表的数据和索引。这些文件为所有表共享。 - **.ibd文件**:单表表空间文件,每个表使用一个.ibd文件,存储用户数据库表的数据...

    mysql 1067错误及其解决方法.docx

    在这种情况下,数据文件(包括`.ibd`和`.frm`文件)的结构可能与MySQL服务器的预期不匹配,尤其是`ibdata1`文件,它是InnoDB存储引擎的主要数据文件,包含了全局表空间的信息。 ### 解决方法 1. **修改默认时戳...

Global site tag (gtag.js) - Google Analytics