MYSQL Incorrect string value

论环境的重要性
MYSQL Incorrect string value: ‘\xE5\x8C\x97\xE4\xBA\xAC’ for column

事情的起因

django orm 用后台管理模块插入一条数据(这条数据是中文),出现错误

MYSQL Incorrect string value: ‘\xE5\x8C\x97\xE4\xBA\xAC’ for column

然后展开思考,我在window上测试没有问题,在Linux部署上出了问题,一定是环境哪里的问题.
于是我搜索了一下这个问题,发现是说数据库建表时候的默认字符集问题
在这里插入图片描述
那么django框架中在哪里会根据 window还是Linux系统进行不同的建表语句吗?

然后我对django模块进行了关键字搜索, 包括 表名,字符集,发现并没有搜索到什么东西
那么 就是是谁控制了建表语句在不同操作系统上的不同表达?如果不是django框架问题,那么会是谁呢?
是mysql自身的配置吗,如果是,修改后就应该正常了

Linux上修改mysql配置

vim /etc/mysql/my.cnf

[mysql]
default-character-set = utf8
[mysqld]
character_set_server = utf8

4.重起MySQL服务器,使其设置的内容生效
#/etc/init.d/mysql restart
5. 重新登入mysql;
mysql -u root - p (输入密码)
mysql> show variables like ‘character_set%’;

参考: https://blog.csdn.net/seven_tester/article/details/86018284
https://blog.csdn.net/qq_34472372/article/details/80707092

这样我们数据字符集改过来了


接下来删除我们的数据库, 从新创建数据库
执行migrate
创建超级用户
打开网站
进入后台 登录
一切都正常了

猜你喜欢

转载自blog.csdn.net/xiaoxiaodechongzi/article/details/106149631