欢迎您访问我爱IT技术网,今天小编为你分享的编程技术是:【mysql5中遭遇的字符集问题及其解决方案】,下面是详细的分享!
mysql5中遭遇的字符集问题及其解决方案
今天打开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/local
mv mysql mysql-old
tar xzvf mysql-5.0.37-linux-i686-glibc23.tar.gz
mv mysql-5.0.37-linux-i686-glibc23 mysql
启动mysql,一切就ok了
以上所分享的是关于mysql5中遭遇的字符集问题及其解决方案,下面是编辑为你推荐的有价值的用户互动:
相关问题:如何解决MySQL 5.5的中文乱码问题
答:设置数据库的字符集utf-8 设置MySQL的字符集 1、查看MySQL的字符集 SHOW VARIABLES LIKE 'character%'; +--------------------------+---------------------------------+ | Variable_name | Value | +--------------------------+-------------... >>详细
相关问题:mysql 5.6默认字符集的问题
答:有2个方法可以试一下: 备份一下my-default.ini,然后把my-default.ini 改成my.ini 直接在命令行设置:如 mysql> SET character_set_client = utf8 ; 。。。。。。。 >>详细
相关问题:请问在安装MySQL5.5的时候选择哪种字符集比较好啊...
答:UTF-8包括了GBK字符集,所以前者兼容性更好,国内一般仅仅使用GBK足够,如果不想以后迁移转换数据很麻烦,就UTF-8 另外这个字符集是可以修改的,安装的时候多支持两个没错。 手动编译安装的mysql最近在某些系统爆出漏洞,尝试256次密码错误也可... >>详细
- 评论列表(网友评论仅供网友表达个人看法,并不表明本站同意其观点或证实其描述)
-
