每次转移到新的数据库,应用存储过程都会出现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 内容相关的,灌水、攻击性或不恰当的评论 可能 会被编辑或删除。
感谢分享
在Navicat for MySQL里面修改就太简单了,右键-数据库属性,然后直接选编码就可以了.这个要重启下Navicat for MySQL
COLLATE utf8_unicode_ci跟
CHARACTER SET utf8
都不一样,Navicat for MySQL显示就一样.有时不能太以来工具..
还是要文本..