遷移數據報 Incorrect string value: '\xF0\x9F\x98\x8A',因 utf8 只支援 3 字節,Emoji 需 4 字節,必須升級 utf8mb4。
僅修改 character_set_server=utf8mb4 重啟失敗(錯誤 1067),日誌無輸出。實際需同步修改 collation_server。
[mysql]
default-character-set=utf8mb4
init_connect='SET NAMES utf8mb4'
[mysqld]
character_set_server=utf8mb4
collation_server=utf8mb4_bin
ALTER DATABASE db CHARACTER SET = utf8mb4 COLLATE = utf8mb4_bin;
ALTER TABLE tbl CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_bin;
-- 大表用 pt-online-schema-change 避免長時間鎖表
characterEncoding=utf8mb4innodb_large_prefix + ROW_FORMAT=DYNAMIC