注册 登录  
 加关注
   显示下一条  |  关闭
温馨提示!由于新浪微博认证机制调整,您的新浪微博帐号绑定已过期,请重新绑定!立即重新绑定新浪微博》  |  关闭

IOS & JAVA KEY

(iMilo)

 
 
 

日志

 
 
关于我

All the splendor in the world is not worth a good friend!! Hello my friend!!

网易考拉推荐

[转]{Mysql}使用frm恢复数据表结构  

2010-04-12 23:14:44|  分类: SQL |  标签: |举报 |字号 订阅

  下载LOFTER 我的照片书  |

 

使用frm恢复数据表结构

当我们建立数据表(innodb或myisam)时,会生成相应的文件(如:MYD,MYI,frm)。

 

说明:frm、MYI、MYD   分别是   MyISAM   表的表结构\索引\数据文件  

 

1:恢复innodb类型数据表结构

步骤:

第一步:创建自己的数据库create database test;

Use test;

Create table google(id int not null,name char(20)) ENGINE = innodb;

这个就是我们的目标数据库表了。

观察发现了此目录中会有一个google.frm  保存的就是它的表结构

第二步:创建我们的要复制过去的新数据库create databse google;

Use google;

第三步:将test里面的google.frm 拷过去

第四步:show tables 发现有了google表了

但是desc  google的时候报错:Table 'google.google' doesn't exist

解决办法:

第五步:创建一个新库tmp

Create database tmp

然后创建表create table google(id int not null) engine=innodb;

然后将google.frm 拷过去到tmp目录下面。

再use tmp

Desc google;

OK了!

 

结论:新库里面必须要有一个同名的表。然后就可以将我们的目标表的结构文件FRM文件拷过来之后就可以直接得到其表结构了!如果你直接复制的话不行!必须是你先自己手工创建同名的表出来然后再覆盖掉!

 

2:恢复myisam类型数据表结构

目标库test 我们先创建我们的表:

Create table test(a char(5),b char(5)) engine=myisam;

之后再创建我们要导入过去的库tmp     create database tmp

然后将test.frm拷到tmp目录下面去。

然后再use tmp

Desc test;

发现报:Table tmp.test' doesn't exist

解决办法:

在tmp目录下面创建两个文件test.MYI  test.MYD

然后输入:repair table test use_frm;     //修复表的方法

OK搞定!

 

 

  评论这张
 
阅读(979)| 评论(2)
推荐 转载

历史上的今天

在LOFTER的更多文章

评论

<#--最新日志,群博日志--> <#--推荐日志--> <#--引用记录--> <#--博主推荐--> <#--随机阅读--> <#--首页推荐--> <#--历史上的今天--> <#--被推荐日志--> <#--上一篇,下一篇--> <#-- 热度 --> <#-- 网易新闻广告 --> <#--右边模块结构--> <#--评论模块结构--> <#--引用模块结构--> <#--博主发起的投票-->
 
 
 
 
 
 
 
 
 
 
 
 
 
 

页脚

网易公司版权所有 ©1997-2017