OETY欧亿|Home

135-2716-3909
网站建设资讯详细

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

发表日期:2026-06-25 10:46:00   作者来源:OETY欧亿   浏览:4940   标签:数据库设计    
作为一个PHP的程序员,用了好多□□□年的mysql数据库,一般的数□□□□据表我们□□要么用InnoDB的表类型(Engine)或MyISAM的表类型□□□□居多。在创建数□□据库表的□□□□时候,默认是使□□□□用的表类□□□型是InnoDB的,当时也没▽太在意,反正不影□□□响数据库●的使用,今天我们□□□不讲InnoDB和MyISAM的区别(在使用事◇务时,需要用到InnoDB表类型之※类的),而是讲下□□□□这两种数□□□据表的如□□何备份。
一般备份◢数据库最□□简单的方□□□法就是使□□用phpmyadmin网页来导丨出保存为sql文件数据□□□库或Navicat使用软件□□□□将所有的○数据表全♦选后另存◆为sql文件。除了两种丨方法外,还能通过□□备份msyql安装目录□□里的data文件夹里□□□的数据库□□□文件来备◤份数据库,data路径如下◥图所示:
 

mysql数据库


 
如果是表□□□□类型为MyISAM的数据库□□□□则非常简□□□单,只需要将□□□□数据表文□□□□件夹(如上图所□□□示的”xianda”)复制到data的目录里□□就可以使□□用这个数□□□□据库了。现在重点●讲下如何□□□□快速恢复□□□□表类型为InnoDB的数据库,根据我的□□经验而言(可能还有△其他的办□□法),想要恢复InnoDB的数据库□□□有一个必□□要条件,那就是你•必须同时□□□备份了上□□□□图所示的ibdata1的文件,否则将无□□法备份InnoDB数据表。例如上图◇里的”sgccmindb”就是innoDB的数据库,首先关闭mysql service,然后同时□□□□复制数据※库文件夹●和ibdata1到data目录里,如果data有其他数□□据库,请先备份,否则ibdata1文件替换□□□原先的ibdata1文件后,原先的数□□据库可能□□□会无法使□□□用,特别是表□□类型innoDB的数据库□□肯定无法□□使用。
以前遇到□□的问题:只复制数□□□据库,并没有复□□制ibdata1文件,造成的情□□□□况如下图□□所示:
 

数据库表
 


从navicat软件里可▼以查看到◤数据表的□□□数据长度□□□为0KB,并且表结✦构也是无□□□□法保存,如果双击□□打开数据□□表,会弹出错▽误如下图□□□□所示:
 

提示


即提示这□□个表是不□□□□存在的,从上面的▽两个提示□□□□可以推断,innoDB的数据库□□□是把所有□□□的数据都◣保存在ibdata1文件了,而MyISAM的数据库□□□则直接把✦数据保存□□□□在表文件◎里的。
总结:如果使用□□□表类型为innoDB的数据库,在备份表□□□□文件的同□□□□时,必须把对□□□应的ibdata1文件也备□□□份了,不过还是□□□□建议备份sql文
如没特殊注明,文章均为OETY欧亿原创,转载请注明来自https://www.hd-banhen.com/news/5156.html