【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 文件字符集,导入时也要指定字符集,这样才能最大限度的保障数据一致性和字符集一致性