数据库migrate时遇到字符集问题,已解决。供后来人参考。
1、问题:
在 python manage.py migrate 时出现如下错误:
django.db.utils.InternalError: (1366, "Incorrect string value: '\xE7\x94\xA8\xE6\x88\xB7' for column 'name' at row 1")
属于mysql数据编码的问题。
关键性解决思路:
* 修改mysql配置文件
* 增加mysql连接时的字符设定
2、修改mysql配置文件
在ubuntu上是:
sudo vim /etc/mysql/mysql.conf.d/mysqld.cnf
在 [mysqld] 和 [client] 部分分别增加内容
重启mysql服务以后,进入mysql查询字符集,可以发现从默认的latin1改为了utf-8。
3、设置mysql连接时为utf-8
Django 的 settings.py 中,数据库连接部分,
'OPTIONS': { 'init_command': 'SET default_storage_engine=INNODB,character_set_connection=utf8,collation_connection=utf8_unicode_ci;' }
Django REST framework课程视频,RESTFul API前后端分离开发
了解课程