mysql的ibdata1怎么删除或者清空-CSDN社区 https://bbs.csdn.net/topics/391970793 发表回复 qq_28126377 2016-06-27 首先,感谢3位的回答。 我的做法是:先导出的数据,然后重装的MySql,然后将数据导入。 赞 lamking 2016-06-22 不同的mysql版本,可以有不同的处理方法。 如果是5.6之前的版本,只能mysqlump导出数据,之后,删除掉数据库,之后停掉mysql,然后删除ibdata1 和ib_logfile,和数据库目录,然后启动mysql,重新建数据库导入数据。 如果是5.6之后的版本,并且innodb_file_per_table 设置的0 ,那做法同上。如果是innodb_file_per_table 设置的1,那可以导出表结构,之后停掉mysql,备份data目录下的那些数据库目录,之后删除这些目录。之后删除ibdata1 和ib_logfile,然后启动mysql,创建数据库导入之前备份的表结构,然后对所有innodb 引擎的表执行 alter table xxx discard tablespace 的命令,之后,把备份的目录下的文件拷贝过去覆盖,设置好目录文件权限之后,再import tablespace,对myisam引擎的执行 repair ,之后重建一下索引,就OK了,其实也挺麻烦的,貌似还不如直接导出备份,再导入。 另外,有些版本。比如忘了是阿里还是哪个提供了一个修改版的mysql,是可以在线收缩ibd文件的,不过我只是看到过,没太留意。 赞 ACMAIN_CHM 2016-06-22 ibdata1 无法直接清空,只能先mysqldump导出所有数据,然后停止MYSQL服务,再删除IBDATA1文件,后再恢复所有数据库。 赞 allen519 2016-06-22 如果你的 ibdata文件 太大 基本上是 因为 innodb 共享表空间文件的设置导致的 清理的话 需要先 dump出数据,关闭mysql 修改my .cnf 文件 然后删除 ibdata文件 ,和一些应用数据库文件 启动mysql 之后, 验证一些 参数设置是否成功 最后 再把dump出来的数据进行导入 这时候 ibdata 文件 将不会像之前那么大了 参考一下这个吧 http://blog.chinaunix.net/uid-24373487-id-4223322.html 2
标签:文件,ibdata1,删除,数据库,mysql,导入,清空 From: https://www.cnblogs.com/jmbt/p/16628452.html