mysql错误1267的解决方法

每次转移到新的数据库,应用存储过程都会出现mysql 1267错误.如下提示:

Error: Illegal mix of collations(latin1_swedish_ci,IMPLICIT) and(gbk_chinese_ci,COERCIBLE) for operation ‘=’

这是一个编码错误.大概就是两种不同编码不能用’='来对比吧.

因为系统本身默认的编码是latin1_swedish_ci,每次用Navicat for MySQL转移数据库,他都没有吧数据库的编码等设置一同复制过去,于是就直接变成默认编码了.而变里面的是数据还是原来的gbk_chinese_ci编码,存储过程却用了latin1_swedish_ci,那肯定是不行的.于是把数据库编码改成gbk_chinese_ci问题就解决了.

在Navicat for MySQL里面修改就太简单了,右键-数据库属性,然后直接选编码就可以了.

大家通常用phpMyAdmin也可以修改编码,如果改了数据库编码还是不行,就要检查表里面每个字段的编码了.

Logo

为开发者提供学习成长、分享交流、生态实践、资源工具等服务,帮助开发者快速成长。

更多推荐