MySQL5.6支持transportable tablespaces(可传输表空间)、允许单表空间(每个表的.ibd文件)动态导入导出
innodb导出物理导入导出备份
实施的基本步骤:
1、新建一个一样的表结构(数据库名称可以不一样)示例如下:
※约束条件、字符集等等也必须一致,建议使用show create table t1; 来获取创建表的SQL,否则在新服务器上导入表空间的时候会提示1808错误(如图)。
root@localhost [ww]>CREATE TABLE `t1` (
`id` int(11) DEFAULT NULL, `username` varchar(10) CHARACTER SET utf8 DEFAULT NULL) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4
root@localhost [ww]> flush table 表名 for export #会生成一个表名.cfg的文件(为共享的数据字典文件),并随之锁定表及有外键相关联的表
3、在新的表空间下卸载表空间
root@localhost [ww]> alter table 表名 discard tablespace; #表名.ibd文件消失
4、将表名.cfg和表名.ibd文件拷贝到新库下
<