背景:
数据库在运行过程中出现了问题,需要根据*.idb文件进行找回数据
操作步骤:
1)先创建一个同样数据格式的表(之前存在的话备份删除,最好先在新的数据库中走一遍流程)
---下面两句是为了处理- Expression #1 of ORDER BY clause is not in GROUP BY clause and contains nonaggregated column 'information_schema.PROFILING.SEQ' which is not functionally dependent on columns in GROUP BY clause; this is incompatible with sql_mode=only_full_group_by 这个问题
select @@sql_mode;
set @@sql_mode ='STRICT_TRANS_TABLES,NO_ZERO_IN_DATE,NO_ZERO_DATE,ERROR_FOR_DIVISION_BY_ZERO,NO_AUTO_CREATE_USER,NO_ENGINE_SUBSTITUTION';
--当出现上面的问题时,可以先通过select @@sql_mode; 查询对应的值,然后把only_full_group_by这个值去掉以后使用 set @@sql_mode ='xxx'
2)执行
ALTER TABLE 表名 DISCARD TABLESPACE;
3)关闭数据库(我使用的是小皮直接在小皮中点击的关闭,如果使用的是命令行自己百度一下执行命令)以后把xxx.idb文件放到mysql数据库的data目录下
4)启动数据库
5)执行 set @@sql_mode ='xxx'命令
6)执行
ALTER TABLE 表名 IMPORT TABLESPACE;
这样数据库便可以复原了
以上内容来源于百科书,可以关注我了解更多.
标签:NO,数据库,mysql,导入,mode,sql,idb From: https://www.cnblogs.com/sdjlq/p/16634938.html