art*_*_cs 0 mysql apache django ubuntu
嗨,我创建了一个 django 项目,并尝试将它部署在带有 mysql 数据库的 ubuntu apache 服务器上
但是当我运行时出现python3 manage.py migrate此错误:
django.db.utils.OperationalError: (1366, "不正确的字符串值: '\xD9\x88\xDB\x95\xD8\xB3...' 列 'name' 在第 1 行")
我只有一列名为 name = models.CharField(max_length=30)
当我运行show variables like 'char%';输出是:
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | latin1 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | latin1 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
Run Code Online (Sandbox Code Playgroud)
在我的/etc/mysql/my.cnf设置中[client] default-character-set = utf8
是否有我错过的东西?!
“utf8”编码仅支持每个字符三个字节,因此您不能使用 utf-8 字符集在 MySQL 中存储 4 个字节的字符。
有关更多信息,请阅读此内容
1.更改您的MySQL数据库、表和列以使用utf8mb4字符集
2.在你的settings.py中
DATABASES = {
'default': {
'ENGINE':'django.db.backends.mysql',
...
'OPTIONS': {'charset': 'utf8mb4'},
}
}
Run Code Online (Sandbox Code Playgroud)