【1】需求

数据迁移,2个库迁移到新的实例上去;

思路:

  按道理直接 mysqldump 导入导出就好了啊;

  但实际上还有许多要考虑的事情;

【2】迁移步骤

【2.1】导出

(1)字符集与引擎问题

select table_schema,table_name,TABLE_COLLATION,ENGINE 
from information_schema.tables 
where table_schema='webshop' ;

(2)mysqldump 参数问题

mysqldump -uroot -p --set-gtid-purged=OFF --single-transaction --flush-privileges  \
--master-data=2 --flush-logs --triggers --routines --events --hex-blob --lock-tables \
--max_allowed_packet=67108864 --B webshop > webshop_`date +%Y%m%d`.sql

1)GTID问题:--set-gtid-purged=OFF     2)binlog问题:--master-data=2

3)MYISAM引擎问题:--lock-tables   4)字符集问题:--default-character-set=utf8  ,这个要根据 (1) 中的情况对应导入导出

5)是否有drop database ifexists:-B 这个要注意看导出的文件,一般没有,但也怕有些版本会出现这个,把现有数据库删掉那就尴尬了;

【2.2】还原、导入

mysql --default-character-set=latin1  quanqingsanguo < test_latin_20210713.sql  
mysql --default-character-set=utf8  quanqingsanguo < test_utf8_20210713.sql  

还原也要注意字符集,根据导出的sql 文件字符集,导入时也要指定字符集,这样才能最大限度的保障数据一致性和字符集一致性