innodb 库的备份注意点(由phpmyadmin引起的解决方案
编程学习 2021-07-05 15:27www.dzhlxh.cn编程入门
新版本xampps 1.8.5 X64 集成了phpmyadmin最新版本(4.1.0), 可每次初始化安装程序后, 进入phpmyadmin管理工具, 就会发现phpmyadmin高级功能失效, 一直在提示数据表不存在, 经过再三的分析, 终于找到原因
由于mysql默认的引擎为 innodb, phpmyadmin创建表时没有特别指定引擎, 也就是使用系统默认的innodb. 这个引擎的使用跟mysql/data/目录下的ibdata1, ib_logfile0, ib_logfile1有关连, 这三个文件加起来有40Mb, xampps总不可能把它打包进去吧. 当数据库有innodb的引擎表时, 删除掉[ibdata1, ib_logfile0, ib_logfile1] 三个文件后, 会影响到所有的innodb引擎表的读取. 感觉问题挺严重的, 假如用户不小心删除了, 怎么办?
假如不小心删除了, 就只能用恢复的方式, 似乎非常复杂.,可以参考这篇文章
希望对大家有帮助.
至于phpmyadmin表这问题怎么解决. 事实上phpmyadmin表只是保存一些事件操作, 也不是特别重要, 其实选择MyISAM也是可以的, 那就动手把phpmyadmin\examples\create_tables.sql创建表给修改了, 将所有的创建表语句前面加上指定的引擎类型, 如:
代码如下:
ENGINE=MyISAM DEFAULT CHARACTER SET utf8 COLLATE utf8_bin;
这里导入进mysql之后, data/目录下的phpmyadmin库, 就可以copy去别的电脑上使用了.
附件中是我修改成功的phpmyadmin库文件.