mysql生产库变更字符集,utf8 -> utf8mb4 emoj
utf8是三字节一个字符,而emoj表情是四子节,所以需要将字符集变更为utf8mb4。后者对utf8是兼容的。
对于已有数据的生产库,变更流程如下:
非常重要!不要在繁忙时段操作,否则锁表的后果不可预计
- 服务器端:jdbc连接需要支持emoj,但是jdbc连接串里的charset不支持utf8mb4。修改mysql的character_set_server为utf8mb4,需要重启实例。这样jdbc会自动检测这个参数,并保持一致
- mysql:将需要修改的表,用下述sql变更。完成后,所有char的字段都会修改
ALTER TABLE `test` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
sort of, I have some experience in the domain of database(MySQL/mongo), java, python, front-end, etc. I'll willing to give and accept bits of help from others.
now base in Singapore.