mysql字符集问题
- 背景:数据库表信息乱码问题
- 影响:数据库连接初始化中断
- 原因:init_connect参数设置问题,参数为不可执行语句。
1.1 DB字符集参数
#数据库中的字符集设置(以下全部为修改过后的结果)
mysql> select user();
+----------------+
| user() |
+----------------+
| root@localhost |
+----------------+
#会话级的参数设置,仅对当前回话有效,set names utf8是会话级的参数,当前会话可以修改当前的连接参数,从而覆盖全局参数设置,默认全局参数设置。
#由于上线是super账户,会话级参数如下,而普通账户的参数都是utf8,所以查看表时导致乱码,而super账户下正常显示。
#乱码最终的解决方案是:super账户所有会话级参数(除character_set_results设置为latin1)设置为utf8, 查看表的信息,执行alter...modify... (内部原理详见后文)
mysql>show variables like "%char%";
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
#全局参数设置,对全局用户有效
mysql>show global variables like "%char%";
+--------------------------+---------------------------------------+
| Variable_name | Value |
+--------------------------+---------------------------------------+
| character_set_client | utf8 |
| character_set_connection | utf8 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | utf8 |
| character_set_server | utf8 |
| character_set_system | utf8 |
#连接初始化参数,该参数对super用户无效,仅对普通用户有效,每一个连接首先进行初始化:执行表中的sql. set names utf8等效set 客户端的字符集参数(client,connection,results).
mysql > show global variables like "%init%";
+------------------------+----------------+
| Variable_name | Value |
+------------------------+----------------+
| init_connect | set names utf8 |
1.2 字符集解释与设置
#character_set_client :客户端来源使用的字符集
#character_set_connection :连接层使用的字符集
#character_set_database : 当前数据库使用的字符集(默认latin1)
#character_set_results : 显示结果使用的字符集
#character_set_server : DB内部使用的字符集
#character_set_system : 系统元数据使用的字符集
#init_connetc : 普通用户连接,执行其值(sql)
msyql> set names utf8;
#set names 等效以下:
msyql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
myqsl> set character_set_results=utf8;
#init_connect="set names utf8"; 保证普通用户的连接使用的utf8字符集。php中连接数据库前也进行字符集的初始化设置。
#这3个参数并不能直接在配置文件中设置,一劳永逸的设置方法是在配置文件中:
[msyql]
default-character-set = utf8
[mysqld]
character-set-server = utf8 (5.6版本也可以是default-character-set =utf8 )
1.3 DB字符集的转换过程

1.4 kaogmat转换方案
上线客户端参数是使用的latin1, 因此查看显示结果(传出)时设置会话参数为 character_set_results=latin1, 其它参数(传入)为utf8, 根据表的信心,重新执行
alter table table_name modify col_name ......,modify....;
mysql字符集问题的更多相关文章
- 如何修改MySQL字符集
首先,MySQL的字符集问题主要是两个概念,一个是Character Sets,一个是Collations,前者是字符内容及编码,后者是对前者进行比较操作的一些规则.这两个参数集可以在数据库实例.单个 ...
- Mysql字符集设置
转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...
- MySQL字符集
字符集的选择 1.如果数据库只需要支持中文,数据量很大,性能要求也很高,应该选择双字节定长编码的中文字符集(如GBK).因为相对于UTF-8而言,GBK"较小",每个汉字只占2个字 ...
- mysql5.5字符集设置的一点变化(对于中文乱码问题,需要设置mysql字符集)
工作中因为字符集问题没少头疼,还犯过一次错误,还好拯救及时,没有发生重大事故,唉,弄清楚点还是非常有必要的: 例如我的工作环境为CTR+redhat5+mysql5.5 在导入sql语句的时候必须要注 ...
- Mysql字符集知识总结
字符集&字符编码方式 字符集(Character set)是多个字符的集合,字符集种类较多,每个字符集包含的字符个数不同,这里的字符可以是英文字符,汉字字符,或者其他国家语言字符. 常见字符集 ...
- MySQL字符集的修改和查看
1.关于MySQL字符集 MySQL的字符集支持(Character Set Support)有两个方面: 字符集(Character set)和排序方式(Collation). MySQL对于字符集 ...
- MySQL字符集转换引发插入乱码问题
根据http://www.cnblogs.com/cchust/p/4601536.html进行验证测试 问题背景 在mysql上面执行一条普通的insert语句,结果报错: Incorrect st ...
- MySQL 字符集设置
/*************************************************************************** * MySQL 字符集设置 * 说明: * 数 ...
- [MySQL] 字符集的选择
1. Mysql支持的字符集 MySQL服务器可以支持多种字符集,不同的字段都可以使用不同的字符集. 查看所有可用字符集: show character set; select * from info ...
- Mysql字符集设置 2 图
基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等: • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodin ...
随机推荐
- robotium如何定位控件?
search类获取当前所有的view,然后根据类型或者文本去筛选,找到view后获取坐标,然后点击坐标.本质都是通过坐标点击.solo.clickonScreen方法,底层调用MotionEvent类 ...
- Java的关键字和标识符
1.关键字 Java中共有52个关键字,其中有两个保留字,虽然查到百度百科上说是50个,但是事实确实是有52个(47+3+2). 1.1保留字 Java语言的的保留字是指在Java中商务预留的关键字 ...
- tomcat + jenkins启动tomcat后打开jenkins页面提示404错误的解决方案
首先下载tomcat和jenkins,将下载的jenkins2.12 war放到tomcat的webapps文件夹下后执行/bin文件夹下的start启动后,打开http://localhost:80 ...
- HDU 5033 Building(单调栈)
HDU 5033 Building(单调栈) 题目链接http://acm.hdu.edu.cn/showproblem.php?pid=5033 Description Once upon a ti ...
- Remote小Demo
Demo基于http://www.cnblogs.com/zhili/p/NETRemoting.html RemotingObj using System; using System.Collect ...
- yii2.0 面包屑的使用
yii2中面包屑是yii2自带的小部件,类似本网站的导航栏应该就是采用面包屑来完成的 例子如下,需要引入 yii\widgets\Breadcrumbs echo Breadcrumbs::widge ...
- MyEclipse中用Maven创建Web项目
方法/步骤 new --> other 1.Wizards: mvaen 2.Maven Project 3.Next Use Default Workspace Locatio ...
- Linux nfs+autofs 环境搭建
两台服务器环境为centos 6.6 1.安装配置nfs 安装portmap 和 nfs [root@node0 ~]# yum install portmap [root@node0 ~]# yu ...
- 为XYplorer添加右键菜单:“使用XYplorer打开”
在目录.磁盘右键添加: Windows Registry Editor Version 5.00 [HKEY_CLASSES_ROOT\Directory\Shell\XYplorer]"E ...
- ASCII码对应表chr(num)
chr(9) tab空格 chr(10) 换行 chr(13) 回车 Chr(13)&chr(10) 回车换行 chr(32) 空格符 ...