mysql采用MYISAM引擎的数据表A,会有如下文件:
A.frm【存储表定义,表字段等等】
A.MYD【存储数据】
A.MYI【存储索引】
mysql采用InnoDB引擎的数据表B,会有如下文件:
B.frm文件
B.ibd 或 .ibdata
idb或.ibdata这两种文件都是存放innodb数据的文件
独享表空间存储方式使用.ibd文件,并且每个表一个ibd文件
共享表空间存储方式使用.ibdata文件,所有表共同使用一个ibdata文件(所有表是指这个服务器上所有库的所有使用INNODB引擎的表)
从这个2中引擎的文件方式中就可以看出,如果用户数据库出现问题,我们采用直接拷贝表文件的方式去操作数据库,前提必须是这些表都采用MYISAM引擎。
查看MySQL是否支持InnoDB引擎以及不支持的解决办法
通过命令行进入mysql或者是通过phpmyadmin进行操作,执行如下命令:
SHOW variables like "have_%"
显示结果中会有如下3种可能的结果:
have_innodb YES 已经开启InnoDB引擎
have_innodb NO 未安装InnoDB引擎
have_innodb DISABLED 未启用InnoDB引擎
针对第二种未安装,只需要安装即可;针对第三种未启用,则打开mysql配置文件,找到 skip-innodb项,将其改成#skip-innodb,之后重启mysql服务即可。