mysql ibdata1文件

如果我删除ibdata1文件并重新启动服务器,我的数据库是MyISAM,之前使用InnoDB,但现在所有的表都是MyISAM,会发生什么情况。 如果我删除这个文件将是一个大问题。 据我所知,当我重新启动服务器将被重新创build,但我不明白到底是什么文件!

您应该执行以下操作:

将其添加到/etc/my.cnf

的[mysqld]
跳跃式的InnoDB

然后执行以下操作:

  1. 服务mysql停止
  2. rm -f / var / lib / mysql / ib *
  3. 服务mysql启动

至于文件是什么:ibdata1存储每个存在的InnoDB表的内部元数据。 确保在删除ibdata1之前,所有InnoDB表都被转换为MyISAM或mysqldump'd。 还有两个其他文件:ib_logfile0和ib_logfile1。 那些是InnoDB日志文件,用于保存运行事务没有完全提交到磁盘以及MVCC(Multiversioning Concurrency Control)数据。

从这三(3)个步骤重新启动mysql后,InnoDB文件都不会再出现。 事实上,你应该得到一个更快的MySQL启动。

不要忘记放大key_buffer_size

InnoDB将ENGINE = InnoDB的所有表的表空间存储在该文件中,而在MyISAM中,表空间存储在单个的.MYD和.MYI文件中。

干杯

是的,您可以删除ibdata1文件。 但是,只要启用了InnoDB引擎,该文件将在启动时重新创build。 在mysqld服务运行时,我不会删除这个文件。