0 查看字符集(character_set/collation)
use information_schema;
desc tables;    --一定记住tables表,information_schema中的metadata都可以查到
-- 查看db的默认,DEFAULT_CHARACTER_SET_NAME/DEFAULT_COLLATION_NAME
select * from schemata where schema_name = 'db_name';
-- 查看table的,只有table_collation字段
select * from tables where table_schema = 'db_name' and table_name = 'table_name';
-- 查看column的,CHARACTER_SET_NAME/COLLATION_NAME都要
select * from columns where table_schema = 'db_name' and table_name = 'table_name';1234567891011
 
--查看mysql支持的character_set,Default collation是默认的"大小写敏感"
select * from information_schema.character_sets;   
--就是执行了上面的sql
show charset;1234
 
 
/*
查看各character set的collation,以gbk为例
gbk_chinese_ci是"大小写不敏感",ci是case sensitive的缩写
gbk_bin是"大小写敏感",以二进制(binary)存储
*/
select * from information_schema.collations;
show collation;1234567
 
 
show variables like 'character_set%';   --查看当前环境的character_set1
 
 
show variables like 'collation%';   --查看当前的collation1
 
 
1 my.ini配置character_set
 
-- 注意位置,放在[client]和[mysql]都可以,效果相同,以后面的为准。放在[mysqld]下服务不能启动。
default-character-set = utf8
-- 上句设置之后,对应的全局变量改变
character_set_client = utf8
character_set_connection = utf8
character_set_results = utf8
-- 注意位置,放在[mysqld]下
character-set-server = gbk
collation-server = gbk_bin
-- 上句设置之后,对应的全局变量改变
character_set_database = gbk
character_set_server = gbk    --默认的create database db时的character_set,其他的含义待测试,可根据字面单词猜想
collation_database = gbk_bin
collation_server = gbk_bin1234567891011121314151617
 
2 数据库的character_set指定/修改
 
-- 默认db的character_set和@@character_set_server一致,table和db一致,column和table一致
create database db;
-- defalut可有可无,注意gbk的default collation(上面有)是gbk_chinese_ci(大小写不敏感)
-- 即使collation_database/server都是gbk_bin,创建的db默认仍是gbk_chinese_ci,这里专门指定
create datadbase db character set gbk collate gbk_bin;
create datadbase db default character set gbk collate gbk_bin;  --正确
alter datadbase db character set gbk collate gbk_bin;       --正确
alter datadbase db convert to character set gbk collate gbk_bin;    --错误,不支持convert to1234567891011
 
3 table的character_set指定/修改
 
create table t1(c1 varchar2) character set gbk collate gbk_chinese_ci;
-- 测试
insert into t1 values('a');
select * from t1 where c1 = 'A';    --返回'a',此时'a'='A'
--注意以下两种方法的差别,第1句是只是修改默认
alter table t1 character set gbk collate gbk_bin;   --提示Records: 0
--测试
alter table t1 add c2 varchar(50);
insert into t1 values('b','b');
select * from t1 where c1 = 'A';    --返回'a',c1仍然是gbk_chinese_ci
select * from t1 where c2 = 'B';    --返回empty,c2是gbk_bin
--已有字段c1,c2及再添加的默认都是gbk_bin
alter table t1 convert to character set gbk collate gbk_bin;    --提示Records: 112345678910111213141516
 
4 column的character_set指定/修改
 
-- 套路相同
alter table add c1 varchar(50) character set gbk collate gbk_bin;
alter table t1 change c1 c1 varchar(50) character set gbk collate gbk_bin;

mysql(5.7.17)字符集设置(character_set/collation)的更多相关文章

  1. MySQL驱动和数据库字符集设置不搭配

    刚才控制台又报这个错,这是代表MySQL驱动和数据库字符集设置不搭配: 错误: "...Initial client character set can be forced via the ...

  2. mysql配置命令 CHARACTER_SET_%字符集设置

    参照: http://blog.csdn.net/mzlqh/article/details/7621307点击打开链接 其实现在的ubuntu12. 直接sudo apt-get install M ...

  3. ubuntu mysql 配置(远程访问&&字符集设置&&忽略大小写)

    1.安装 参考http://www.cnblogs.com/wuhou/archive/2008/09/28/1301071.html sudo apt-get install mysql-serve ...

  4. 【MySQL for Mac】终极解决——MySQL在Mac的字符集设置

    这个问题烦恼一天了,现在终于得以解决.分享给大家 首先贴出来,亲测不可行的博客连接: http://www.2cto.com/database/201305/215563.html http://bl ...

  5. mysql 表及其列字符集设置

    --修改表的字符集 alter table rtb_media_daily_report character set gbk; --查询表列字符集 show full columns from rtb ...

  6. MySQL字符集设置及字符转换(latin1转utf8)

    MySQL字符集设置及字符转换(latin1转utf8) http://blog.chinaunix.net/uid-25266990-id-3344584.html  MySQL字符集设置及字符转换 ...

  7. Mysql字符集设置

    转 基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如’A'.’B'等:• 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodi ...

  8. Mysql字符集设置 2 图

    基本概念 • 字符(Character)是指人类语言中最小的表义符号.例如'A'.'B'等: • 给定一系列字符,对每个字符赋予一个数值,用数值来代表对应的字符,这一数值就是字符的编码(Encodin ...

  9. 再见乱码:5分钟读懂MySQL字符集设置

    一.内容概述 在MySQL的使用过程中,了解字符集.字符序的概念,以及不同设置对数据存储.比较的影响非常重要.不少同学在日常工作中遇到的"乱码"问题,很有可能就是因为对字符集与字符 ...

随机推荐

  1. 外网访问不了Xampp(本地访问不了虚拟机的Xampp)

    安装好了Xampp,在虚拟机是可以访问的, 浏览器中输入localhost 嘛 不过在本地就是访问不了,ping是能通过的 然后网上查了一些资料,并结合Xampp的提示:    特别注意:如果连上面这 ...

  2. Solidity两个string的比较

    有三种比较方法 方法一:比较string的哈希值方法二:先比较string的长度,再比较每个对应位置的字母是否相同方法三:先比较string的长度,再比较string的哈希值一.比较string的哈希 ...

  3. Node.js中setTimeout和setInterval的使用

    Node.js和js一样也有计时器,超时计时器.间隔计时器.及时计时器,它们以及process.nextTick(callback)函数来实现事件调度.今天先学下setTimeout和setInter ...

  4. Linux多线程 - 基本操作

    0. 线程 vs 进程 何为线程?线程即轻量级进程,如何理解轻量级这个概念? 我们知道,Linux的资源分为用户空间资源和内核空间资源: 用户空间资源:用来存放用户自定义的一些数据,用户可直接控制: ...

  5. 不停机不停服务,MYSQL可以这样修改亿级数据表结构

    摘  要:本文阐述了MySQL DDL 的问题现状.pt-online-schema-change的工作原理,并实际利用pt-online-schema-change工具在线修改生产环境下1.6亿级数 ...

  6. ARP协议抓包之帧长度和Gratuitous ARP的问题

    用Winpcap编程构造ARP包选择网卡并发出,遇到若干问题,学到了许多新知识,但是有的还尚未解决,在这里记录下没解决的和解决的问题. 先来看下ARP协议的格式,ARP字段有28个字节,发到以太网中还 ...

  7. JavaScript shift()函数移出数组第一个数据

    pop() 函数用来移出数组中最后一个元素.如果想要移出第一个元素要怎么办呢? .shift() 就是专门用来处理这类型需求的.它的工作原理类似 .pop(),但它移除的是第一个元素,而不是最后一个.

  8. 360手机新品牌5月6日公布 周鸿祎席地而坐谈AK47

    今年年初,周鸿祎又做了一个艰难的决定,南下做手机!经过好一番折腾终于搞出点动静,奔驰S600L也卖了(炒作的味道很浓重),一款代号为AK47的产品被确认,就连邀请函也充分的体现了周鸿祎的老兵情节.最近 ...

  9. [转]linux文件批量转码

    linux系统里提供的文件转化编码的命令iconv,例如: iconv -t utf- -f gb2312 -c test.xml > text_UTF8.xml -f  源编码-t  目标编码 ...

  10. Tomcat启动项目两次

    网上一搜,给出的答案都一样,不外乎:1.删除 Host 标签配置的 appBase="webapps"2.删除 Context 配置 此处这样做:重新添加Tomcat,选择好自己的 ...