(此文章为转载博客,为方便自己日后查找,原文链接如下:https://blog.csdn.net/wang603603/article/details/80463285)
简介:核心思想就是在本地新建一个与源数据一模一样的表结构,然后拿原始的ibd文件替换自己的ibd文件,达到输入数据的效果。
将拷贝的数据文件(这里假设名称为"qqq.idb")放在对应的数据库目录中,一般存放路径为在mysql/data/databasename
为文件"qqq.idb" 改个名字-->"qqq--.idb", 主要是避免后续冲突
执行 create table qqq(...) 语句,括号里的是表结构创建语句,目的是在自己的数据库中创建一个一模一样的表,此时会生成两个文件:qqq.frm, qqq.idb
执行 ALTER TABLE qqq DISCARD TABLESPACE;,该命令会自动删除新生成的qqq.idb文件
将"qqq--.idb"文件名改回为"qqq.idb",这样便使用源数据替换了自己新建的空表。
ALTER TABLE qqq IMPORT TABLESPACE; SHOW WARNINGS;
--结束,OK。
此外,附上mysql中查看指定数据库的存储位置的命令:
show global variables like '%datadir%';
!