网站制作学习网→http://www.forasp.cn/→正文:复制mysql innodb 表数据到新的数据库
字体:

复制mysql innodb 表数据到新的数据库

http://www.forasp.cn/ 2022/12/24 12:08:58  点击:不统计

%77w%77%2E%66%6F%72%61%73%70%2E%63%6E
 假设有两个MySQL实例,一个运行在olddatabase(源端)下,另一个运行在newdatabase(目标端)下,现在演示一下,如何通过这种方式将olddatabase下的表复制到newdatabase下:

 
1. olddatabase上创建一张表,并插入数据
mysql> use test1;
mysql> create table movet(c1 INT) ENGINE=InnoDB;
mysql> insert into movet values(2),(3),(5),(7),(11);
 
2. newdatabase上也创建相同的表
mysql> USE test1;
mysql> CREATE TABLE movet(c1 INT) ENGINE=InnoDB;
 
3. newdatabase上, discard 掉现有的表空间
mysql> ALTER TABLE movet DISCARD TABLESPACE;
 
4. olddatabase上,运行FLUSH TABLES ... FOR EXPORT命令:
mysql> FLUSH TABLES movet FOR EXPORT;
 
在数据库目录下,可以看到多出一个cfg文件:
root@olddatabase:/var/lib/mysql/test1# ls movet.*
movet.cfg movet.ibd
 
5. 将 .ibd 文件和 .cfg metadata 文件从olddatabase上拷贝到newdatabase上:
root@olddatabase:/var/lib/mysql/test1# scp movet.{cfg,ibd} newdatabase:/var/lib/mysql/test1
 
 
6. olddatabase上,使用UNLOCAL TABLES释放FLUSH TABLES ... FOR EXPORT命令获取的锁
mysql> UNLOCK TABLES;
 
7. newdatabase上,导入从olddatabase上复制过来的表空间:
mysql> alter table movet import tablespace;
Query OK, 0 rows affected (0.45 sec)
 
原文链接:https://blog.csdn.net/qingsong3333/article/details/77171040

http://www.forasp.cn/

·上一篇:mysql 查看命令错误 >>    ·下一篇:替换mysql 中数据换行符号 >>
推荐文章
最新文章