在开发过程中如果不小心数据丢失或者数据库出现问题不能使用是,我们首先先要知道这些数据库是什么存储引擎的
如果是MyISAM存储引擎的,我们可以直接找到存放数据库文件的地方直接拷贝过去就可以直接使用。
如果是InnoDB存储引擎的话会比较麻烦
首先去找到存放数据库文件地方,里面有对于的.frm和.ibd格式的文件,这里面的.ibd格式存放的就是自己平常保存的数据内容,记得一定要保存好,不能删除,最好是进行备份一下
下面就进行做恢复数据的方法
1. 先创建一样的数据表
[php]
CREATE TABLE `weblist` (
`id` int NOT NULL COMMENT ‘表id’,
`webname` varchar(25) NOT NULL DEFAULT ” COMMENT ‘站点名称’,
`weburl` varchar(100) NOT NULL DEFAULT ” COMMENT ‘站点url’,
`type` tinyint(1) NOT NULL DEFAULT ‘1’ COMMENT ‘1-返利系统,2-运营返利系统(总控制台控制权限)’,
`addtime` int NOT NULL COMMENT ‘添加时间’,
`lasttime` int NOT NULL COMMENT ‘最后更新时间’
) ENGINE=InnoDB DEFAULT CHARSET=utf8 COMMENT=’站点列表’ ROW_FORMAT=COMPACT;
[/php]
记得这个表一定要加上ROW_FORMAT=COMPACT,否则添加了.ibd文件依然无法访问数据
2. 执行下面的语句使.ibd数据文件和.frm分离
[php]alter table weblist discard tablespace;[/php]
3. 接下来就是先关闭mysql,然后把.ibd的文件复制到你存放数据的文件的地方
4. 把.ibd的文件复制过去后启动mysql,下面进入到对应数据库执行下面代码进行恢复数据
[php]alter table weblist import tablespace;[/php]
发表评论