由于建立mysql数据库时采用默认字符集配置,导致数据库操作报错django.db.utils.OperationalError:1267

数据库建立时,使用默认字符集,结果字符集变成latin1 -- cp1252 West European,程序报错。

https://www.aliyun.com/jiaocheng/1105879.html?spm=5176.100033.2.19.364f8cd8GHlp7A

  • django插入数据库错误:mysql的1267错误
  • 发布时间:2018-04-16 来源:网络 上传者:用户

    关键字: 错误 插入 数据库 Django MySQL 1267

    发表文章
  • 摘要:错误信息:django.db.utils.OperationalError:(1267,"Illegalmixofcollations(latin1_swedish_ci,IMPLICIT)and(utf8_general_ci,COERCIBLE)foroperation'='")解决办法:1ALTERTABLExyzCONVERTTOCHARACTERSETutf8;
  • 错误信息:

    django.db.utils.OperationalError: (1267, "Illegal mix of collations (latin1_swedish_ci,IMPLICIT) and (utf8_general_ci,COERCIBLE) for operation '='")

    解决办法:

    1 ALTER TABLE xyz CONVERT TO CHARACTER SET utf8;
  • 以上是django插入数据库错误:mysql的1267错误的内容,更多 错误 插入 数据库 Django MySQL 1267 的内容,请您使用右上方搜索功能获取相关信息。

修改字符集的命令如下:https://www.cnblogs.com/sxwen/p/7851031.html

mysql 修改字符集

一、修改my.ini配置文件(mysql配置文件)

character_set_server = utf8 #设置字符集

重启mysql数据库服务

查看当前数据库字符集

show VARIABLES like 'character%';

二、修改数据库字符集

alter database 数据库名 character set utf8;

ps:修改完数据库字符集,需要重启mysql数据库。

三、修改表字符集

ALTER TABLE  表名 DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

生成所有表修改字符集语句:

SELECT TABLE_NAME,CONCAT('ALTER TABLE  ',TABLE_NAME,' DEFAULT CHARACTER SET ',a.DEFAULT_CHARACTER_SET_NAME,' COLLATE ',a.DEFAULT_COLLATION_NAME,';') executeSQL FROM information_schema.SCHEMATA a,information_schema.TABLES b
WHERE a.SCHEMA_NAME=b.TABLE_SCHEMA
AND a.DEFAULT_COLLATION_NAME!=b.TABLE_COLLATION
AND b.TABLE_SCHEMA='数据库名' 

四、修改列字符集

ALTER TABLE  表名 CHANGE  列名  列名  VARCHAR( 100 ) CHARACTER SET utf8 COLLATE utf8_general_ci NULL DEFAULT NULL;

生成所有列修改字符集语句:

复制代码

select b.table_name,b.column_name,b.character_set_name,b.collation_name
,CONCAT('ALTER TABLE ',b.table_name,' MODIFY ',b.column_name,' ',b.DATA_TYPE,'(',b.CHARACTER_MAXIMUM_LENGTH,') ',CASE WHEN b.COLUMN_DEFAULT IS NULL THEN ''  ELSE CONCAT('DEFAULT \'',b.COLUMN_DEFAULT,'\'') END,' COMMENT \'',b.COLUMN_COMMENT,'\';') executeSQL
 from information_schema.TABLES a,information_schema.COLUMNS b where  b.character_set_name IS NOT NULL and a.TABLE_SCHEMA=b.TABLE_SCHEMA AND a.TABLE_NAME=b.TABLE_NAME
AND a.TABLE_COLLATION!=b.COLLATION_NAME
and a.TABLE_SCHEMA='数据库名'

复制代码

结果还不行,因为我是新装软件,所以我只能删除数据库,重新建立。在建立时将数据库字符集手动设置成:

utf8 -- UTF-8 Unicode

utf8_general_ci

猜你喜欢

转载自blog.csdn.net/qq_27361945/article/details/82896481