不知道啥情况,内网测试服务器系统挂了,修也修不好了,只能重装了,之前在服务器上有安装过mysql服务,数据保存在/data/mysql目录下,现在重装了系统,然后重装了mysql服务,想要把之前的数据都迁移过来。

巧的是,我的数据都是InnoDB存储引擎的,不能直接把数据文件拷贝到新的数据目录使用,网上说MyISAM的话,可以直接拷贝来用,不知道是不是真的。

 InnoDB存储引擎的文件有2种类型,frm:表结构,ibd:数据

 MyISAM存储引擎的文件有3种类型,frm:表结构,MYD:数据,MYI:索引

这里说一下,如何查看当前数据库使用和支持的存储引擎哈,登录数据库,执行sql语句:

SHOW ENGINES;

 可以看到,默认引擎是InnoDB,当然也之前其他的引擎,例如MyISAM。

之前的frm和ibd文件不能直接使用,那怎么办呢,通过查阅资料,了解到一个方法,那就是用【mysql-utilities】工具恢复数据,操作步骤如下:

1、下载MySQL Utilities软件,地址:https://downloads.mysql.com/archives/utilities/  选window平台即可,因为本次是说windows下的使用

2、安装到电脑指定的目录,我的目录是

 3、把服务器上的数据文件打包传到windows电脑上

4、在安装【mysql-utilities】的目录按住shift按钮,点击右键,弹出选项里面选这个

5、在窗口里面执行代码:

mysqlfrm I:\桌面\tea\j_admin.frm > I:\桌面\tea\sql\j_admin.sql --diagnostic

路径按照自己实际的来哈,执行成功,查看生成了一个sql文件,打开可以看到j_admin表的结构,至于备注中文乱码的问题,我也不知道怎么回事呀

 6、把create table的语句放到数据库里面去执行,成功之后,再执行一下下面的语句,这个的意思是:删除刚刚通过建表语句生成的.ibd文件

alter table `j_admin` discard tablespace;

7、把从服务器上备份下来的对应表的ibd文件,拷贝到新创建的数据看存放目录,然后执行如下语句,这个意思是:来导入表空间文件

alter table `j_admin` import tablespace;

8、查看新数据库,表和数据都正常了

windows的使用就说完了,下次再说linux下的方法哈。

原文地址:http://www.cnblogs.com/firstlady/p/16852278.html

1. 本站所有资源来源于用户上传和网络,如有侵权请邮件联系站长! 2. 分享目的仅供大家学习和交流,请务用于商业用途! 3. 如果你也有好源码或者教程,可以到用户中心发布,分享有积分奖励和额外收入! 4. 本站提供的源码、模板、插件等等其他资源,都不包含技术服务请大家谅解! 5. 如有链接无法下载、失效或广告,请联系管理员处理! 6. 本站资源售价只是赞助,收取费用仅维持本站的日常运营所需! 7. 如遇到加密压缩包,默认解压密码为"gltf",如遇到无法解压的请联系管理员! 8. 因为资源和程序源码均为可复制品,所以不支持任何理由的退款兑现,请斟酌后支付下载 声明:如果标题没有注明"已测试"或者"测试可用"等字样的资源源码均未经过站长测试.特别注意没有标注的源码不保证任何可用性