MySQL字符集的一个坑

http://imysql.com/2013/10/29/misunderstand-about-charset-handshake.shtml

MySQL字符集的一个坑

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

无论在客户机用哪个版本的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 选项后,就可以避免客户端程序误操作,使用其他字符集连接进来并写入数据,从而引发乱码问题。

最新文章

  1. Entity Framework 6 Recipes 2nd Edition(12-3)译 -> 数据库连接日志
  2. C语言 · 求矩阵各个元素的和
  3. CPU相关知识---物理CPU数、物理核数、逻辑核数、逻辑CPU数 ?
  4. C语言杂谈(一)scanf()、scanf_s()与错误 C4996
  5. function [ binary,decimal ] = num2binary16( number )
  6. 最全 Adobe 系列产品 CS6版本 序列号/注册码
  7. 浅析前端开发中的 MVC/MVP/MVVM 模式
  8. 测试连接失败,因为初始化提供程序时发生错误,[DBNMPNTW] ConnectionOpen (CreateFile())
  9. ES6 Module export与import复合使用
  10. centos中病毒
  11. 便捷的ajax请求
  12. MCV 和 MTV框架基本信息
  13. Git同步远程fork的项目
  14. C/C++.【转】解析URL的转义字符百分比(%)字符串
  15. CentOS命令介绍综合
  16. python中字典的用法
  17. vue-router-2-动态路由配置
  18. Java Socket实战之一 单线程通信基础socket
  19. LeetCode140:Word Break II
  20. sql server 2012 数据库日志文件过大,怎么缩小?

热门文章

  1. Android学习之BitMap用法实例
  2. springmvc接收前台(可以是ajax)传来的数组list,map,set等集合,复杂对象集合等图文详解
  3. 【Java知识点专项练习】之 数据类型两大类
  4. Linux调试分析诊断利器——strace
  5. web应用安全防范(1)—为什么要重视web应用安全漏洞
  6. java高级---->Thread之ExecutorService的使用
  7. 题目1008:最短路径问题(最短路径问题dijkstra算法)
  8. 调用office COM出现不会退出的问题
  9. 简单ORM工具的设计和编写,自己项目中曾经用过的
  10. kvm虚拟机不能使用virsh shutdownw命令关闭虚拟机的解决方法