mysql的ibdata1怎么删除或者清空

qq_28126377 2016-06-21 05:04:26
mysql的ibdata1怎么删除或者清空
...全文
3751 4 打赏 收藏 转发到动态 举报
写回复
用AI写文章
4 条回复
切换为时间正序
请发表友善的回复…
发表回复
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
  • 打赏
  • 举报
回复 2
如果你的 ibdata文件 太大 基本上是 因为 innodb 共享表空间文件的设置导致的 清理的话 需要先 dump出数据,关闭mysql 修改my .cnf 文件 然后删除 ibdata文件 ,和一些应用数据库文件 启动mysql 之后, 验证一些 参数设置是否成功 最后 再把dump出来的数据进行导入 这时候 ibdata 文件 将不会像之前那么大了 参考一下这个吧 http://blog.chinaunix.net/uid-24373487-id-4223322.html

56,679

社区成员

发帖
与我相关
我的任务
社区描述
MySQL相关内容讨论专区
社区管理员
  • MySQL
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧