如何解决mysql5中经常出现的字符集问题?

    作者:课课家教育更新于: 2016-03-18 18:00:13

      在MySQL5的实际操作中,经常会遇到字符集,很多人会对这些字符集感到头疼,不知如何解决,今天我们针对mysql5经常出现的字符集问题进行一定的讲解,希望对大家有帮助。

     如何解决mysql5中经常出现的字符集问题?_数据库_mysql5存储_课课家

      以下的文章主要向大家描述的是MySQL5中经常遇到的字符集问题和具体的实际解决办法,如果你对MySQL5中经常遇到的字符集问题和具体的实际解决办法的相关内容有兴趣了解的话,你就可以浏览以下的文章了。

      今天打开slave日志发现一堆错误全部是这种:

      [ERROR]Slave:Error'Characterset'#28'isnotacompiledcharactersetandisnotspecifiedinthe'/usr/local/MySQL(和php搭配之最佳组合)/share/MySQL(和PHP搭配之最佳组合)/charsets/Index.xml(标准化越来越近了)'file'onquery.

      我在master(Linux)机上写insert语句,发现同步是没问题的,后来我在window上用一个MySQL(和PHP搭配之最佳组合)客户端插入数据,上面的问题就开始出现了。通过MySQL(和PHP搭配之最佳组合)binlog查看slave日志发现

      如果使用gbk编码的客户端插入数据就会有下面的日志:

      

      如果是直接在linux写insert,那么上面的28(gbk)就变成8(latin-swde)

      原因应该是MySQL(和PHP搭配之最佳组合)客户端使用了gbk编码,而服务器无法识别。虽然你可以在'/usr/local/MySQL(和PHP搭配之最佳组合)/share/MySQL(和PHP搭配之最佳组合)/charsets/Index.xml(标准化越来越近了)'找到gbk,但通过SHOWCHARACTERSET;确实可以看出数据库没有列出gbk。

      我又比较了一下别的机器上的MySQL(和PHP搭配之最佳组合)版本,发现那些机器上的MySQL(和PHP搭配之最佳组合)都是用的发布版本,而这台slave机使用源代码安装的,于是我下了个MySQL(和PHP搭配之最佳组合)-5.0.37-linux-i686-glibc23.tar.gz

      然后

      cd/usr/local

      mvMySQL(和PHP搭配之最佳组合)MySQL(和PHP搭配之最佳组合)-old

      tarxzvfMySQL(和PHP搭配之最佳组合)-5.0.37-linux-i686-glibc23.tar.gz

      mvMySQL(和PHP搭配之最佳组合)-5.0.37-linux-i686-glibc23MySQL(和PHP搭配之最佳组合)

      启动MySQL(和PHP搭配之最佳组合),一切就ok了。

课课家教育

未登录