mysql生产库变更字符集,utf8 -> utf8mb4 emoj

utf8是三字节一个字符,而emoj表情是四子节,所以需要将字符集变更为utf8mb4。后者对utf8是兼容的。

对于已有数据的生产库,变更流程如下:

非常重要!不要在繁忙时段操作,否则锁表的后果不可预计

  1. 服务器端:jdbc连接需要支持emoj,但是jdbc连接串里的charset不支持utf8mb4。修改mysql的character_set_server为utf8mb4,需要重启实例。这样jdbc会自动检测这个参数,并保持一致
  2. mysql:将需要修改的表,用下述sql变更。完成后,所有char的字段都会修改
    ALTER TABLE `test` CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;

     

posted @ 2017-11-24 15:44  Els0n  阅读(231)  评论(0编辑  收藏  举报