[mysql] 如何将拷贝过来的数据 *.ibd 文件生效 及查看数据存储位置

(此文章为转载博客,为方便自己日后查找,原文链接如下:https://blog.csdn.net/wang603603/article/details/80463285)
简介:核心思想就是在本地新建一个与源数据一模一样的表结构,然后拿原始的ibd文件替换自己的ibd文件,达到输入数据的效果。

  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;,该命令会自动删除新生成的qqq.idb文件
  5. 将"qqq--.idb"文件名改回为"qqq.idb",这样便使用源数据替换了自己新建的空表。
  6. ALTER TABLE qqq IMPORT TABLESPACE; SHOW WARNINGS;
    --结束,OK。

此外,附上mysql中查看指定数据库的存储位置的命令:

show global variables like '%datadir%'; 
posted @ 2019-05-21 23:42  !!随心  阅读(2109)  评论(0编辑  收藏  举报