首页 / 数据库 / MySQL / mysql5中遇到的字符集问题及解决办法
mysql5中遇到的字符集问题及解决办法2008-04-07今天打开slave日志发现一堆错误全部是这种:[ERROR] Slave: Error "Character set "#28" is not a compiled character set and is not specified in the "/usr/local/mysql/share/mysql/charsets/Index.xml" file" on query.我在master(linux)机上写insert语句,发现同步是没问题的,后来我在window上用一个mysql客户端插入数据,上面的问题就开始出现了。通过mysqlbinlog查看slave日志发现如果使用gbk编码的客户端插入数据就会有下面的日志:SET @@session.character_set_client=28,@@session.collation_connection=33,@@session.collation_server=8/*!*/;如果是直接在linux写insert,那么上面的28(gbk) 就变成8(latin-swde)原因应该是mysql客户端使用了gbk编码,而服务器无法识别。虽然你可以在"/usr/local/mysql/share/mysql/charsets/Index.xml" 找到gbk,但通过 SHOW CHARACTER SET;确实可以看出数据库没有列出gbk。我又比较了一下别的机器上的mysql版本,发现那些机器上的mysql都是用的发布版本,而这台slave机使用源代码安装的,于是我下了个mysql-5.0.37-linux-i686-glibc23.tar.gz然后cd /usr/localmv mysql mysql-oldtar xzvf mysql-5.0.37-linux-i686-glibc23.tar.gzmv mysql-5.0.37-linux-i686-glibc23 mysql启动mysql,一切就ok了