如何快速恢复Mysql数据库中表类型为InnoDB的表结构和数据

发布时间:2025-07-25 点击:6
作为一个php的程序员,用了好多年的mysql数据库,一般的数据表我们要么用innodb的表类型(engine)或myisam的表类型居多。在创建数据库表的时候,默认是使用的表类型是innodb的,当时也没太在意,反正不影响数据库的使用,今天我们不讲innodb和myisam的区别(在使用事务时,需要用到innodb表类型之类的),而是讲下这两种数据表的如何备份。
一般备份数据库最简单的方法就是使用phpmyadmin网页来导出保存为sql文件数据库或navicat使用软件将所有的数据表全选后另存为sql文件。除了两种方法外,还能通过备份msyql安装目录里的data文件夹里的数据库文件来备份数据库,data路径如下图所示:
如果是表类型为myisam的数据库则非常简单,只需要将数据表文件夹(如上图所示的”xianda”)复制到data的目录里就可以使用这个数据库了。现在重点讲下如何快速恢复表类型为innodb的数据库,根据我的经验而言(可能还有其他的办法),想要恢复innodb的数据库有一个必要条件,那就是你必须同时备份了上图所示的ibdata1的文件,否则将无法备份innodb数据表。例如上图里的”sgccmindb”就是innodb的数据库,首先关闭mysql service,然后同时复制数据库文件夹和ibdata1到data目录里,如果data有其他数据库,请先备份,否则ibdata1文件替换原先的ibdata1文件后,原先的数据库可能会无法使用,特别是表类型innodb的数据库肯定无法使用。
以前遇到的问题:只复制数据库,并没有复制ibdata1文件,造成的情况如下图所示:
从navicat软件里可以查看到数据表的数据长度为0kb,并且表结构也是无法保存,如果双击打开数据表,会弹出错误如下图所示:
即提示这个表是不存在的,从上面的两个提示可以推断,innodb的数据库是把所有的数据都保存在ibdata1文件了,而myisam的数据库则直接把数据保存在表文件里的。


传统网站制作的方式都有哪几种?
网站建设分享4种专业方式来创造令人兴奋的内容
营销类网站建设者应避免犯的七个错误
围绕用户需要,在B站打广告的“三步走”策略
黄浦网站推广公司怎么挑选?
时代变迁,在上海做网站推广的体验与感概
香港高防服务器防御ddos攻击的方式
5G时代万物互联,移动互联网域名价值凸显