[mysql] 如何将拷贝过来的数据 *.ibd 文件生效 及查看数据存储位置
(此文章为转载博客,为方便自己日后查找,原文链接如下: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%';