
utf8mb4描述字符编码能力,collation描述比较和排序规则,两者不是同一个设置。源库与目标库版本不同,即使都支持utf8mb4,也可能不支持同名排序规则;迁移前应核对实际表列与连接编码,而不是全文件随意替换字符串。
记录源库和目标库的实际实现
确认使用MySQL还是MariaDB及其版本,列出数据库、表和相关字符列的设置。数据库默认值并不能证明所有旧列都已转换。不能因为控制面板都显示UTF8,就假定四字节字符、索引与比较行为完全兼容。
区分存储编码与比较语义
字符集影响可表示字符和编码,排序规则还可能影响大小写、重音或其他比较。更换排序规则可能改变唯一键冲突及排序结果,不只是让导入不报错。产品编码、账号名与多语言标题等字段,应按业务需要检查相等判断。

在副本中设计受支持转换
依据目标服务器支持的规则选择合适方案,先保留原始导出并在隔离环境测试。不能盲目把某个新规则名称批量改成旧名称,就认为语义不变。转换时还需考虑索引长度、数据有效性与应用连接设置,记录实际执行和结果。
回归文字、搜索和唯一约束
用中文、扩展字符、型号及大小写差异样本检查保存、读取、排序与查询。导入无错误不等于原有内容和唯一性完全保持。记录已验证字段与未覆盖插件表,正式切换前确认可恢复备份,不用生产库作试错场。
关键区别

字符集:可表示的编码范围;不等于比较规则。
排序规则:影响比较和排序;变化可能影响唯一键。
默认配置:新对象的设置线索;不证明旧表列已转换。
怎样确认处理到位
目标库支持所选规则,文字存取、关键查询与唯一约束符合预期,源导出和转换记录可追溯且未无依据改写数据。
容易误判的边界
不同MySQL与MariaDB版本支持范围不能混用;本文不提供适合所有库的全局字符串替换方案。
