1.将拷贝的数据文件   "qqq.idb"放在自己的数据库中. 一般存放在  mysql/ data/ databasename 下 2. "qqq.idb" 改个名字-->"qqq--.idb", 主要是避免冲突! 3.执行 create table qqq(...) 语句,此时除了会生成一个  qqq.frm, 文件,还会新生成一个qqq.idb文件 4.执行 ALTER TABLE qqq DISCARD TABLESPACE; 会…
记录通过.frm和.ibd文件恢复数据到本地 .frm文件:保存了每个表的元数据,包括表结构的定义等: .ibd文件:InnoDB引擎开启了独立表空间(my.ini中配置innodb_file_per_table = 1)产生的存放该表的数据和索引的文件. 以actclss表为例,结构如下 1.安装相同版本的mysql: 2.找回表结构(若有表结构,直接导入表即可) 建立同名的表(InnoDB),随意一个字段即可 关闭mysql服务,用需要恢复的.frm文件覆盖新生成的.frm文件.接着修改my…
数据库误操作,把表的字段删除了,关键是被删除的字段的数据很重要,现在想要恢复数据,下面说说是怎么操作的. 数据库只剩.frm和.ibd文件了,按照网上的做法分如下两步来进行:一.找回表结构,二.找回数据.关键是我在第一步就碰到了问题,进行不下去,网上第一步的描述如下: a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20…
客户的机器系统异常关机,重新启动后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,仅仅能想办法从数据库文件其中恢复,查找资料,试验各种方法,确认以下步骤可行: 一.找回表结构.假设表结构没有丢失直接到下一步       a.先创建一个数据库.这个数据库必须是没有表和不论什么操作的. b.创建一个表结构.和要恢复的表名是一样的. 表里的字段无所谓. 一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint…
参考:http://my.oschina.net/sansom/blog/179116 参考:http://www.jb51.net/article/43282.htm 注意!此方法只适用于innodb_file_per_table独立表空间的InnoDB实例. 此种方法可以恢复ibdata文件被误删.被恶意修改,没有从库和备份数据的情况下的数据恢复,不能保证数据库所有表数据的100%恢复,目的是尽可能多的恢复. 恢复数据前提是表结构定义文件frm可以使用,如果有下面报错就比较麻烦,需要手动恢复…
客户的机器系统异常关机,重启后mysql数据库不能正常启动,重装系统后发现数据库文件损坏,悲催的是客户数据库没有进行及时备份,只能想办法从数据库文件当中恢复,查找资料,试验各种方法,确认下面步骤可行: 一.找回表结构,如果表结构没有丢失直接到下一步 a.先创建一个数据库,这个数据库必须是没有表和任何操作的. b.创建一个表结构,和要恢复的表名是一样的.表里的字段无所谓.一定要是innodb引擎的.CREATE TABLE `test`(  `testID` bigint(20)) ENGINE=…
最近内部的 mysql 数据库发生了一件奇怪的事,其中有一个表 users625 突然出现问题, 所有对它的操作都报错误 数据表不存在. mysql> select count(*) from users625; ERROR 1146 (42S02): Table 'km8.users625' doesn't exist show tables 它还显示在列表里,在 mysql 数据目录中也可以找到对应的表文件,也没有 进行过删除操作,突然出现这样的错误非常奇怪. 内部运行环境: 名称 值 OS…
-- 这里要还原的表名为 test_table -- 1建库,并选中库,库名随意 -- 2查看InnoDB 引擎独立表空间是否开启 SHOW VARIABLES LIKE '%per_table%' ; -- 3设置InnoDB 引擎独立表空间开启,这样data目录下新建的表都会有对应的.ibd数据文件 ; -- 4建表 CREATE TABLE `test_table` ( `id` ) UNSIGNED NOT NULL AUTO_INCREMENT, `openid` ) DEFAULT…
一.恢复表结构 1.环境:Windows .mysql5.7:首先创建一个数据库,可以通过navicat来创建:     2.使用当前创建的数据库:use ww; 3.随意创建一张表,但是这张表的名字要和你要恢复的.frm或者.ibd一致,我的.frm与.ibd文件为gonggao.frm与gonggao.ibd 因此我的创建表语句为:     create table gonggao(id int); 4.在执行上面的创建表语句之后,在服务里面或者使用net stop mysql关闭数据库服务…
首先,在MySQL命令行下执行如下命令可以查看MySQL中存放数据的位置: show global variables like "%datadir%"; 我这里的执行结果: +---------------+---------------------------------------------+ | Variable_name | Value | +---------------+---------------------------------------------+ | d…