请稍等 ...
×

采纳答案成功!

向帮助你的同学说点啥吧!感谢那些助人为乐的人

(1366, "Incorrect string value: '\xE7\x94\xA8\xE6\x88\xB7' for column 'name'

数据库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] 部分分别增加内容

//szimg.mukewang.com/59c46bfb0001474e07760198.jpg

//szimg.mukewang.com/59c46c09000165b605380124.jpg


重启mysql服务以后,进入mysql查询字符集,可以发现从默认的latin1改为了utf-8。

//szimg.mukewang.com/59c46c3e0001d10e10000930.jpg


3、设置mysql连接时为utf-8

Django 的 settings.py 中,数据库连接部分,

  'OPTIONS': { 'init_command': 'SET default_storage_engine=INNODB,character_set_connection=utf8,collation_connection=utf8_unicode_ci;' }

//szimg.mukewang.com/59c46c6c0001c6da27160460.jpg




正在回答

1回答

bobby 2017-09-25 10:37:48

点个赞

登录后可查看完整回答登录/注册
问题已解决,确定采纳
还有疑问,暂不采纳
意见反馈 帮助中心 APP下载
官方微信