03
3

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也可以修改编码,如果改了数据库编码还是不行,就要检查表里面每个字段的编码了.

======================

补充一下,如果修改了数据库的编码还是不行,就需要删除存储过程,再重新添加了.

相关日志

2 条评论了已经

Trackbacks/Pingbacks.

发表评论

名字(必须)
邮箱(必须),(永不被公布)
网址(建议)

字体为 粗体 是必填项目,邮箱地址 永远不会 公布。

允许部分 HTML 代码:
<a href="" title=""> <abbr title=""> <acronym title=""> <b> <blockquote cite=""> <cite> <code> <del datetime=""> <em> <i> <q cite=""> <strike> <strong>
URLs(网站链接)必须完整有效 (比如: http://www.vpnall.com),所有标签都必须完整的关闭。

超出部分系统将会自动分段及换行。

请保证评论内容是与日志或 Blog 内容相关的,灌水、攻击性或不恰当的评论 可能 会被编辑或删除。