1. OperationalError
: (1366
, “Incorrect string value: ‘\xE4\xB9\x8B\xE7\xBE\x8E’ for column ‘name’ at row 1”)
出错原因: 数据库的编码规则没有使用
utf8
,而在存储数据时添加了中文
数据,导致报错。
解决办法:
- 删除数据库(有数据先
备份
)
drop database [database_name];
- 指定编码重建数据库 或者 修改数据库编码后重建数据库
create database [database_name] default character set utf8 collate utf8_general_ci;
show variables like 'character%'; // 查看mysql的编码
set character_set_client=utf8; // 设置客户端的编码为utf8
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;
create database [database_name]; // 新创建数据库使用的编码规则是utf8
- 重新迁移数据库
python manage.py makemigrations
python manage.py migrate