问题:
在Django项目中使用 migrate 同步数据库操作时,出现1366类型 InternalError
出错原因:
由于表记录中有汉字,而创建库或者创建表的时候没有设置中文字符集charset=utf8
解决方案:
方案一、更改库的默认字符集
创建库的时候指定默认字符集:
create database 库名 default charset=utf8;
或者修改现有库的字符集:
alter database 库名 character set utf8;
方案二、更改表的默认字符集,
创建表的时候指定默认字符集
create table 表名 (...) default charset=utf8;
或者修改现有表的字符集
alter table 表名 character set utf8;
方案三、修改配置文件(新创建的库和表会自动设置中文字符集)
修改配置文件详细步骤: (注意:为了防止把配置文件改错,修改之前先将其备份)
# 获取用户权限:
sudo -i
# 进入到mysql配置文件所在路径:
cd /etc/mysql/mysql.conf.d/
# 备份(-p选项会把原文件的权限