MySQL删除表怎么恢复?
情况1、如果你有该库的整体备份或对这个表的单独备份,那么也许可以恢复。可以将最新的备份恢复到一个备用的服务器上,导出那表的内容,完成恢复
情况2、如果没有任何备份,那就基本没戏了。一般删除表的操作是drop table,日志中不会记录删除具体行数的记录。表所对应目录下的文件已经被删除(innodb独立表空间,单表归为一文件)。同样的情况适用于myisam数据库引擎,对应的myd/myi/frm文件均被删除。这不像windows还有垃圾箱,是不可逆的操作
frm,myd,myi是属于MySQL存储数据的文件,phpMyAdmin是无法导入的。
phpMyAdmin支持的文件格式为sql文件。
其实很简单:
1找到你的mysql的安装目录下的data文件夹,新建一个文件夹,文件夹的名称是你想设计的库的名称,把这些文件放到此文件夹中。2
frm格式 MYD格式MYI格式的文件是mysql用来存放表的文件,所以只能放到mysql的安装目录的data目录下
而且如果你是要传到空间上的话,基本上是无法恢复了,除非你把这些数据给空间商要他帮你恢复。
出来怎么办
mysql中数据导不出来怎么办_mysql挂掉了,无法导出数据,data文件如何恢复?

三十六陂
原创
关注
0点赞·1246人阅读
问题描述的不是非常清楚
1 mysql挂掉,还能启动吗?
2 死活不肯导出数据>> 是指用什么样的方式不能导出?报什么错?
一 假定mysql可以启动,逻辑导出时报错。 这个问题就相对简单,解决逻辑导出的问题即可。对于不同的逻辑导出错误,采取不同的方法解决。
二 假定mysql不可启动,那要看启时的时候报什么错误,对于不同的错误,采取不同的方法
三 最坏的打算,mysql不可启动,并且不能解决db启动的问题。
可以先尝试下面的方法:
copy所有datadir下的文件到目标机,启动数据库,如果可以正常启动,启动后执行mysql_upgrade即可
如果上面方法不行,那就只是数据文件还在,什么操作也执行不了。
那就要放大招了。
对于myisam引擎的表:在目标机上初始化好数据库之后,copy相应的frm MYI MYD三个文件到相应的目录,设置好文件权限,就可以查看表里的数据,也就是说myisam表已经恢复了。
对于innodb引擎的表(独立表空间):
使用传输表空间的方式恢复数据:
1 先得到建表语句(建表语句一般都会有,比如业务存着的表结构,退一步如果没有建表语句,也可以进行恢复)
2 在目标机上建好表
3 alter table discard tablespace
4 56版本以下才需要(56以上版本不care tablespace_id) vim ibd
5 alter table import tablespace
就可以恢复innodb表里的数据。
innodb比myisam恢复起来麻烦一些,是因为innodb在ibdata中记录的有表结构。
数据完整性是一个DBA最基本的必须完成的,使用ucloud(UCloud – 专业云计算服务商)用户可以不必考虑数据的丢失
ucloud每天会对数据进行备份,如果备份没有成功,会告警给用户,并协助用户解决不能成功备份的问题。这样每天都能成功的备份,也就不用考虑异常恢复的场景了。
对于数据文件还在异常恢复db的场景相对简单。
对于文件已经不存在的,如drop table,drop database 也可以把数据恢复出来(没有备份也可以恢复),只是过程麻烦些。收费高些。
使用Ucloud(UCloud – 专业云计算服务商)的 mysql数据库,可以免费的享受数据在不同场景下的恢复。
曾免费帮助ucloud用户恢复在云主机上部署的mysql数据库。
0条评论