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

时间: 2024-11-01 17:09:24

MySQL字符集编码的理解的相关文章

MySQL字符集编码的理解分析

今天帮同事处理一个棘手的事情,问题是这样的: 无论在客户机用哪个版本的mysql客户端连接服务器,发现只要服务器端设置了 character-set-server = utf8之后, character_set_client. character_set_connection.character_set_results 就始终都是和服务器端保持一致了,即便在mysql客户端加上选项 --default-character-set=utf8 也不行,除非连接进去后,再手工执行命令 set name

linux修改mysql字符集编码

本文适用于mysql5.5 mysql5.6  其他版本未测试 mysql -u帐号 -p密码  登录mysql mysql>SHOW VARIABLES LIKE 'character%'; 查看当前字符集编码方式 MySQL [(none)]> SHOW VARIABLES LIKE 'character%'; +--------------------------+----------------------------------+ | Variable_name | Value |

mysql字符集编码设置与查看命令

最近,在项目组使用的mysql数据库中,插入数据出现乱码,关于这个问题做了下总结,我们从最基本的地方说起,到错误产生的深层次原因和解决办法. 基本概念:• 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等: • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encoding).例如,我们给字符'A'赋予数值0,给字符'B'赋予数值1,则0就是字符'A'的编码: • 给定一系列字符并赋予对应的编码后,所有这些字符和编码对组成的集

MySQL修改默认字符集编码的方法_Mysql

今天又遇到修改MySQL默认字符集编码的问题,折腾了半天解决了,赶快记录下来,以后就不用每次折腾了. 查看MySQL字符集的命令是"show variables like '%char%';". 以MySQL5.6为例,默认的字符集为: 在工作中需要将字符集全部修改为utf8. 以下是修改的方法: 1.打开安装目录,默认在"C:\Program Files\MySQL\MySQL Server 5.6", 2.在当前文件夹中复制一份"my-default.

mysql 常用设置 字符集编码、自动完成(自动提示)、监听外网ip_Mysql

设置mysql监听外网ip 复制代码 代码如下: sudo vi /etc/my.cnfbind-address = 127.0.0.1 设置mysql 字符集 charset 复制代码 代码如下: sudo vi /etc/my.cnf在[mysqld]下面加入一行character_set_server = utf8在[mysql]下面加入一行default-character-set = utf8sudo /usr/local/mysql/support-files/mysql.serve

MySQL设置编码命令

环境:MySQL Sever 5.1 + MySQL命令行工具 问题:MySQL设置编码 解决: SET character_set_client = utf8 ; 补充资料:MySQL查看本地数据库支持的所有字符集命令 show character set; 查看本栏目更多精彩内容:http://www.bianceng.cnhttp://www.bianceng.cn/database/MySQL/ 以上是小编为您精心准备的的内容,在的博客.问答.公众号.人物.课程等栏目也有的相关内容,欢迎

Java中的字符集编码入门(六) Java中的增补字符

Java号称对Unicode提供天然的支持,这话在很久很久以前就已经是假的了(不过曾经是真的),实际上,到JDK5.0为止,Java才算刚刚跟上Unicode的脚步,开始提供对增补字符的支持. 现在的Unicode码空间为U+0000到U+10FFFF,一共1114112个码位,其中只有1,112,064 个码位是合法的(我来替你做算术,有2048个码位不合法),但并不是说现在的Unicode就有这么多个字符了,实际上其中很多码位还是空闲的,到Unicode 4.0 规范为止,只有96,382个

Java中的字符集编码入门(二) 编码字符集与字符集编码的区别

需要再一次强调的是,无论历史上的UCS还是现如今的Unicode,两者指的都是编码字符集,而不是字符集编码.花费一点时间来理解好这件事,然后你会发现对所有网页的,系统的,编码标准之间的来回转换等等繁杂事务都会思路清晰,手到擒来. 首先说说最一般意义上的字符集. 一个抽象字符集其实就是指字符的集合,例如所有的英文字母是一个抽象字符集,所有的汉字是一个抽象字符集,当然,把全世界所有语言的符号都放在一起,也可以称为一个抽象字符集,所以这个划分是相当人为的.之所以说"抽象"二字,是因为这里所提

查看mysql字符集及修改表结构--表字符集,字段字符集

MySQL 乱码的根源是的 MySQL 字符集设置不当的问题,本文汇总了有关查看 MySQL 字符集的命令.包括查看 MySQL 数据库服务器字符集.查看 MySQL 数据库字符集,以及数据表和字段的字符集.当前安装的 MySQL 所支持的字符集等. 一.查看 MySQL 数据库服务器和数据库字符集. mysql> show variables like '%char%';+--------------------------+----------------------------------