ubuntu mysql 1366_(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] 部分分别增加内容

100038c3257e279da9817ea031090b11.png

fa9a9127bd90e5347ced401424facde8.png

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

e543b856b886f974791948bafed03ec0.png

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

Django 的 settings.py 中,数据库连接部分,'OPTIONS': { 'init_command': 'SET default_storage_engine=INNODB,character_set_connection=utf8,collation_connection=utf8_unicode_ci;' }

8bb623c244baebee98c1ed6852056915.png

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值