MySqlibdata1文件太大怎么缩小

无法自动收缩,必须数据导出,删除ibdata1,然后数据导入,比较麻烦,因此需要改为每个表单独的文件。解决方法:数据文件单独存放(共享表空间如何改为每个表独立的表空间文件)。步骤如下:?1)备份数据库从命令行进入MySQL Server 5.0\bin备份全部数据库,执行命令D:\>mysqldump -q -umysql -ppassword ...
MySqlibdata1文件太大怎么缩小
MySql ibdata1文件太大如何缩小 MySql innodb如果是共享表空间,ibdata1文件越来越大,达到了30多个G,对一些没用的表进行清空: truncate table xxx; 然后optimize table xxx; 没有效果 因为对共享表空间不起作用。 mysql ibdata1存放数据,索引等,是MYSQL MySql ibdata1文件太大如何缩小 MySql innodb如果是共享表空间,ibdata1文件越来越大,达到了30多个G,对一些没用的表进行清空:truncate table xxx;然后optimize table xxx; 没有效果因为对共享表空间不起作用。mysql ibdata1存放数据,索引等,是MYSQL的最主要的数据。如果不把数据分开存放的话,这个文件的大小很容易就上了G,甚至几十G。对于某些应用来说,并不是太合适。因此要把此文件缩小。无法自动收缩,必须数据导出,删除ibdata1,然后数据导入,比较麻烦,因此需要改为每个表单独的文件。解决方法:数据文件单独存放(共享表空间如何改为每个表独立的表空间文件)。步骤如下:?1)备份数据库从命令行进入MySQL Server 5.0\bin备份全部数据库,执行命令D:\>mysqldump -q -umysql -ppassword --add-drop-table --all-databases > c:/all.sql做完此步后,停止数据库服务。?2)找到my.ini或my.cnf文件linux下执行 ./mysqld --verbose --help | grep -A 1 'Default options'会有类似显示:Default options are read from the following files in the given order:/etc/my.cnf ~/.my.cnf /usr/local/service/mysql3306/etc/my.cnfwindows环境下可以:mysqld --verbose --help > mysqlhelp.txtnotepad mysqlhelp.txt在里面查找Default options,可以看到查找my.ini的顺序,以找到真实目录?3)修改mysql配置文件打开my.ini或my.cnf文件[mysqld]下增加下面配置innodb_file_per_table=1验证配置是否生效,可以重启mysql后,执行show variables like '%per_table%'看看innodb_file_per_table变量是否为ON?4)删除原数据文件删除原来的ibdata1文件及日志文件ib_logfile*,删除data目录下的应用数据库文件夹(mysql文件夹不要删)?5)还原数据库启动数据库服务从命令行进入MySQL Server 5.0\bin还原全部数据库,执行命令mysql -uusername -pyourpassword 经过以上几步后,可以看到新的ibdata1文件就只有几十M了,数据及索引都变成了针对单个表的小ibd文件了,它们在相应数据库的文件夹下面。?? 2023-07-27
mengvlog 阅读 10 次 更新于 2025-07-21 02:58:40 我来答关注问题0
  •  懂视生活 MySQL问答系列之如何避免ibdata1文件大小暴涨

    ibdata1文件是InnoDB存储引擎的共享表空间文件,该文件中主要存储着下面这些数据: data dictionary double write buffer insert buffer/change buffer rollback segments undo space Foreign key constraint system tables另外,当选项 innodb_file_per_table = 0 时,在ibdata1文件中还需要存储 InnoDB 表数...

  •  智者总要千虑 为什么MySQL里的ibdata1文件一直变大

    MySQL 5.6 版中你也可以创建外部的撤销表空间,所以它们可以放到自己的文件来替代存储到 ibdata1。可以看看这个文档。

  • 在innodb的bufferpool中,有许多dirtypage(就是内存中的数据已经被修改,但是没有写回文件中),如果直接把文件复制回去,轻则数据丢失,重则ibdata1文件损坏。备份mysql数据的时候,也不能直接备份这几个文件,是同样的道理。我们必须保证所有bufferpool中的数据修改都保存到了硬盘文件上面,为此,首先要停止...

  • 在MySQL 5.6.6版本以前,MySQL默认会把所有的innodb的表都放在同一个文件中(ibdata1),当该文件过大的时候,MySQL容易出错,维护性能差。一个简单的办法是修改MySQL配置文件/etc/my.cnf后重启 [mysqld]innodb_file_per_table=1

  • ibdata1 文件“减肥”的主要方法和步骤包括:了解ibdata1文件内容:系统表空间:存储表和索引数据。独立表空间:由innodb_file_per_table参数定义,新表存储在单独的表空间文件中。通用表空间:通过CREATE TABLESPACE语法创建的共享表空间。UNDO表空间:存储undo logs,可配置多个UNDO表空间。临时表空间:...

檬味博客在线解答立即免费咨询

mySQL相关话题

Copyright © 2023 WWW.MENGVLOG.COM - 檬味博客
返回顶部