作者:佚名 时间:2024-01-24 12:45:53 阅读:(11)
最近发现电脑硬盘越来越小,排查发现是因为mysql中data文件夹的ibdata1文件越来越大,因此占用了过多磁盘空间,究其原因是因为配置不当导致的,主要是针对MySQL5.6以前的版本,接下来云梦编程为大家介绍一下MySQL ibdata1文件太大的解决办法,有需要的小伙伴可以参考一下:
ibdata1是一个用来构建innodb系统表空间的文件,这个文件包含了innodb表的元数据、撤销记录、修改buffer和双写buffer。如果file-per-table选项打开的话,该文件则不一定包含所有表的数据。当innodb_file_per_table选项打开的话,新创建表的数据和索引则不会存在系统表空间中,而是存放在各自表的.ibd文件中。
显然ibdata文件存的是数据库的表数据,如缓存,索引等。所以随着数据库越来越大,表也会越大,这个无法避免的。
(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过大问题解决方法的全部内容了,了解更多相关文章请关注云梦编程网!