博客
关于我
强烈建议你试试无所不能的chatGPT,快点击我
MySQL字符集的一个坑
阅读量:6799 次
发布时间:2019-06-26

本文共 919 字,大约阅读时间需要 3 分钟。

今天帮同事处理一个棘手的事情,问题是这样的:

无论在客户机用哪个版本的mysql客户端连接服务器,发现只要服务器端设置了

character-set-server = utf8

之后,

character_set_client、 character_set_connection、character_set_results

就始终都是和服务器端保持一致了,即便在mysql客户端加上选项

--default-character-set=utf8

也不行,除非连接进去后,再手工执行命令

set names latin1

,才会将client、connection、results的字符集改过来。

经过仔细对比,最终发现让我踩坑的地方是,服务器端设置了另一个选项:

skip-character-set-client-handshake

文档上关于这个选项的解释是这样的:

--character-set-client-handshake Don't ignore character set information sent by the client. To ignore client information and use the default server character set, use --skip-character-set-client-handshake; this makes MySQL behave like MySQL 4.0

这么看来,其实也是有好处的。比如启用 skip-character-set-client-handshake 选项后,就可以避免客户端程序误操作,使用其他字符集连接进来并写入数据,从而引发乱码问题。

--------------------------------------分割线--------------------------------------

知数堂 ()培训是由资深MySQL专家叶金荣、吴炳锡联合推出的专业优质培训品牌,主要有MySQL DBA实战优化和Python运维开发课程,是业内最有良心、最有品质的培训课程。

本文出自 “” 博客,请务必保留此出处

转载地址:http://fuuwl.baihongyu.com/

你可能感兴趣的文章
使pre的内容自动换行(转)
查看>>
Git详解之Git分支
查看>>
如何判断一个GPS点是否在以另一个GPS点为圆心100米为半径的圆内(Java代码)
查看>>
【淡墨Unity3D Shader计划】五 圣诞用品: Unity在Shader三种形式的控制&混合操作编译...
查看>>
.net接口开发远程调试
查看>>
在线影音页面的制作方法
查看>>
shell 随机从文件中抽取若干行
查看>>
Android 6.0 Changes
查看>>
Animated progress view with CAGradientLayer(带翻译)<待更新>
查看>>
MySQL具体解释(5)-----------函数超全总结
查看>>
论C++与三国
查看>>
让linux history命令显示命令的运行时间、在哪个机器运行的这个命令
查看>>
CentOS安装crontab及使用方法(转)
查看>>
一个屌丝程序猿的人生(一)
查看>>
Nginx 启动脚本/重启脚本
查看>>
Java_java动态编译整个项目,解决jar包找不到问题
查看>>
MapReduce编程示例
查看>>
【spring】 <tx:annotation-driven /> 的理解 【转载的】
查看>>
PHP 获取图像信息 getimagesize 函数
查看>>
SSM框架整合( Spring 、 SpringMVC 和 Mybatis )
查看>>