环境:公司上新设备,需要把客户信息从旧设备迁移。
旧设备:mysql版本:5.6 centos:7.3 存储引擎:INNODB
新设备:mysql版本:5.7 centos:7.6 存储引擎:INNODB
战斗时间过长,设备老旧
实现思路,首先要查看之前创库创表语法,并将库和表创建好,然后新表进行分离,再将旧表的idb文件传输到新表/usr/local/mysql/data/库中
1、查之前的创库语法,用同样的语法在新设备上创建库
2、查之前的创库语法,用同样的语法在新设备上创建表
3、将新创好的表进行分离
alter table (表名) discard tablespace
4.、把旧设备的 ibd文件通过SCP传到新设备上;
5、远程传输不会保留原有权限,将此文件所属者改为mysql
6、将原表的ibd文件导入
select查看就会有了!多表转移也是按原表创表语法一个一个来创建,分离、导入可以用拼接命令进行分离导入!
批量分离:
select concat ('alter table ' ,table_schema,'.',table_name , ' discard tablespace') from information_schema.tables where table_schema not in ('sys','mysql','information_schema','performance_schema');
批量导入:
select concat ('alter table ' , table_schema,'.',table_name , ' import tablespace') from information_schema.tables where table_schema not in ('sys','mysql','information_schema','performance_schema');
将要分离、导入的数据直接复制粘贴执行即可。