云梦编程网

当前位置:首页 > 数据库教程 >

mysql中ibdata1过大的问题

作者:佚名 时间:2024-01-24 12:45:53 阅读:(11)

最近发现电脑硬盘越来越小,排查发现是因为mysql中data文件夹的ibdata1文件越来越大,因此占用了过多磁盘空间,究其原因是因为配置不当导致的,主要是针对MySQL5.6以前的版本,接下来云梦编程为大家介绍一下MySQL ibdata1文件太大的解决办法,有需要的小伙伴可以参考一下:

mysql中ibdata1过大的问题

1、ibdata1文件是什么?

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

2、ibdata1越来越大的原因

显然ibdata文件存的是数据库的表数据,如缓存,索引等。所以随着数据库越来越大,表也会越大,这个无法避免的。

3、解决方法

    (1)、备份数据库

    从命令行进入MySQL\bin备份全部数据库,执行命令

    mysqldump -q -uroot -p --add-drop-table --all-databases > e:/alldata.sql

    (2)、停止Mysql服务

	service mysql stop

    (3)、修改Mysql配置文件

    打开my.ini或my.cnf文件,在[mysqld] 下面新增以下配置

	innodb_file_per_table=1

    (4)、删除文件

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

    (5)、重启Mysql服务,还原数据库

    从命令行进入MySQL\bin目录,然后执行以下命令还原数据库

	mysql -uroot -p < e:/alldata.sql

    还原之后发现ibdata1文件变的很小了,数据及索引都变成了针对单个表的小ibd文件了,它们在相应数据库的文件夹下面。


    以上就是云梦编程为大家介绍的关于mysql的ibdata1过大问题解决方法的全部内容了,了解更多相关文章请关注云梦编程网!

最新文章

热门文章