MySQL 5.7 与 utf8mb4
为支持完整的 Unicode(包括 emoji),数据库应使用 utf8mb4 而非 utf8。
配置方法
在 my.cnf 中:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
Django 侧配置
DATABASES = {
'default': {
'ENGINE': 'django.db.backends.mysql',
'OPTIONS': {
'charset': 'utf8mb4',
'init_command': "SET sql_mode='STRICT_TRANS_TABLES'",
},
}
}
注意事项
utf8mb4单字符最长 4 字节,索引列长度需 ≤ 191(对于 InnoDB 默认 row_format)STRICT_TRANS_TABLES让数据截断时报错而非静默,避免数据丢失- 迁移前确保所有表已转换字符集
评论 0
还没有评论,来说两句吧。
发表评论