MySQL5中经常出现的字符集问题有哪些?

树叶云

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

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

[ERROR] Slave: Error ‘Character set ‘#28’ is not a compiled character set and is not specified in the ‘/usr/local/MySQL(和PHP搭配之***组合)/share/MySQL(和PHP搭配之***组合)/charsets/Index.xml(标准化越来越近了)’ file’ on query.

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

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

  1. SET @@session.character_set_client=28,@@session.collation_connection=33,@@session.collation_server=8/*!*/; 

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

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

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

然后

cd /usr/local

mv MySQL(和PHP搭配之***组合) MySQL(和PHP搭配之***组合)-old

tar xzvf MySQL(和PHP搭配之***组合)-5.0.37-linux-i686-glibc23.tar.gz

mv MySQL(和PHP搭配之***组合)-5.0.37-linux-i686-glibc23 MySQL(和PHP搭配之***组合)

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

以上的相关内容就是对MySQL5中遇到的字符集问题以及解决办法的介绍,望你能有所收获。
 

上述的相关内容就是对MySQL5中遇到的字符集问题以及解决办法的描述,希望会给你带来一些帮助在此方面。

【编辑推荐】

  1. 实现MySQL定时执行并不难!
  2. 实现MySQL数据库同步大演练
  3. 巧用c# 连接MySQL中文乱码问题
  4. 巧用MySQL加密函数对Web网站敏感数据进行保护
  5. MySQL客户端的软件连接服务器演示

文章来源网络,作者:运维,如若转载,请注明出处:https://shuyeidc.com/wp/236228.html<

(0)
运维的头像运维
上一篇2025-04-21 22:15
下一篇 2025-04-21 22:16

相关推荐

发表回复

您的邮箱地址不会被公开。必填项已用 * 标注