From: http://www.2cto.com/database/201302/189920.html

MySql:charset和collation的设置
 
charset 和 collation 有多个级别的设置:服务器级、数据库级、表级、列级和连接级 
  www.2cto.com  
1.服务器级 
  查看设置:show global variables like 'character_set_server'; 和 show global variables like 'collation_server'; 
  修改设置:在OPTION FILE (/etc/mysql/my.cnf)里设置: 
   [mysqld] 
    character_set_server=utf8 
    collation_server=utf8_general_ci 
 
2. 数据库级 
   查看设置:select * from information_schema.schemata where schema_name = 'cookbook'; 
   设置: 
     1.若没有显式设置,则自动使用服务器级的配置 
     2.显式设置:在创建库时指定 
       create database playUtf8  DEFAULT CHARACTER SET latin1 COLLATE latin1_swedish_ci; 
  www.2cto.com  
3.表级 
   查看设置:show create table course; 
   设置: 
     1.若没有显式设置,则自动使用数据库级的配置 
     2.显式设置:在创建表时指定 
       create table utf ( id int ) default charset=utf8 default collate=utf8_bin; 
 
4.列级 
   查看设置:show create table course; 
   设置: 
     1.若没有显式设置,则自动使用表级的配置 
     2.显式设置: 
 
     CREATE TABLE Table1(column1 VARCHAR(5) CHARACTER SET latin1 COLLATE latin1_german1_ci); 
 
5.连接级别 
  查看设置: 
     show variables like 'character_set_client';  # 服务端使用这个编码来理解客户端发来的statements 
     show variables like 'character_set_connection' ; # 我还不知道什么意思,等看了mysql源码再说 
     show variables like 'character_set_results'; # 服务端使用这个编码回送结果集和错误信息 
  设置: 
     客户端在连接时可以指定这些参数;同时,服务端也提供了一个Global范围的值,客户端未指定这些参数时,服务端就使用这个Global值。这个global值怎么设置的? 我查遍了很多文档,似乎还没看到设置的办法 (有人说通过my.cnf,或者在启动mysqld时指定命令行参数,其实都是错的) 
 
附:connector/j传输SQL时用什么编码? 
  答案: "The character encoding between client and server is automatically detected upon connection. The encoding used by the driver is specified on the server using the character_set_server system variable for server versions 4.1.0 and newer." 
   也就是说,是在连接时查询服务器端的character_set_server值,再确定连接将使用的编码。 
   不过,官方文档还说,"要想覆盖客户端上的自动检测编码功能,可在用于连接到服务器的URL中使用“characterEncoding”属性。"
 
 
 

MySql:charset和collation的设置的更多相关文章

  1. Mysql系列(四) —— MySQL的Charset和Collation

    本文转载自:再见乱码:5分钟读懂MySQL字符集设置 一.内容概述 在MySQL的使用过程中,了解字符集.字符序的概念,以及不同设置对数据存储.比较的影响非常重要.不少同学在日常工作中遇到的" ...

  2. 特殊汉字“𣸭”引发的对于字符集的思考;mysql字符集;sqlalchemy字符集设置;客户端字符集设置;

    字符集.字符序的概念与联系 在数据的存储上,MySQL提供了不同的字符集支持.而在数据的对比操作上,则提供了不同的字符序支持. MySQL提供了不同级别的设置,包括server级.database级. ...

  3. linux 下mysql的安装,并设置必要的密码

    首先,我使用的是redhat linux ,版本号为: [root@localhost init.d]# cat /proc/version Linux version - (bhcompile@po ...

  4. 解决乱码的方法是,在执行SQL语句之前,将MySQL以下三个系统参数设置为与服务器字符集character-set-server相同的字符集

    character-set-server/default-character-set:服务器字符集,默认情况下所采用的. character-set-database:数据库字符集. characte ...

  5. MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!

    MySQL 5.7主从复制从零开始设置及全面详解——实现多线程并行同步,解决主从复制延迟问题!2017年06月15日 19:59:44 蓝色-鸢尾 阅读数:2062版权声明:本文为博主原创文章,如需转 ...

  6. MySQL 创建表时,设置时间字段自己主动插入当前时间

    MySQL 创建表时,设置时间字段自己主动插入当前时间 DROP TABLE IF EXISTS `CONTENT`; CREATE TABLE `CONTENT` ( `ID` char(20) N ...

  7. MySQL Database on Azure 参数设置

    在使用MySQL过程中,经常会根据需要对MySQL的参数进行一些设置和调整.作为PaaS版本的MySQL,MySQL Database on Azure在参数设置方面有一些限制,客户不能像使用on-p ...

  8. [linux] mysql跨服务器访问, iptables设置

    跨服务器mysql访问, iptables配置 1> 设置被访问机器的mysql权限 grant all privileges on *.* to root@"[ip]" i ...

  9. Mysql 数据库date, datetime类型设置0000-00-00默认值(default)报错问题

    Mysql 数据库date, datetime类型设置0000-00-00默认值报错问题 现象:MySQL5.7版本之后,date, datetime类型设置默认值"0000-00-00&q ...

随机推荐

  1. C#对DataTable里数据筛选排序的方法

    在日常开发过程中,有一个DataTable集合,里面有很多字段,现在要求针对某一列进行排序,如果该列为数字的话,进行ASC即可实现,但是该字段类型为string,此时排序就有点不正确了 protect ...

  2. 【Turing Award】Robin Milner And Butler W. Lampson

    1991 罗宾·米尔纳(Robin Milner) Robin Milner(13 January 1934 – 20 March 2010) Introduction : Milner was bo ...

  3. idea 在tomcat中部署的时候 莫名其妙的错误

    针对web项目需要 打成 war exploded 包,这样就不会每次重新构建打包,也不会出现莫名其妙的错误

  4. WIN锁屏+鼠标移动事件

    winexec('rundll32.exe user32.dll, LockWorkStation', sw_hide); 1.shutdown.bat(关机)  rundll32.Exe shell ...

  5. C#学习笔记(10)——再谈委托,不同国家问候的例子

    说明(2017-6-14 09:08:38): 1. 首先是一个简单的委托 (1)命名空间下定义一个委托MyDel: public delegate void MyDel(string name); ...

  6. Eigen教程(4)

    整理下Eigen库的教程,参考:http://eigen.tuxfamily.org/dox/index.html Array类和元素级操作 为什么使用Array 相对于Matrix提供的线性代数运算 ...

  7. Cpu表现出正弦曲线

    #include <windows.h> #include <math.h> int main(void) { SetThreadAffinityMask(GetCurrent ...

  8. Android studio 创建安卓项目hello

    Android studio是一个非常好用的软件,只不过在使用的最开始,由于各种问题,会失败,并且新手本身就不懂的情况下,更加的懵逼. 这里我来记录一下我遇到过的一点坑. 首先,Android stu ...

  9. Postgres数据库补丁脚本示例

    SET client_encoding = 'UTF8';-- 新建序列和表DROP TABLE IF EXISTS cms_user_unit;DROP SEQUENCE IF EXISTS cms ...

  10. Android——BroadcastReceiver

    注释:一般广播不会被阻断,有序广播则会被阻断 注释:这是用动态注册的广播,必须要解绑 xml <?xml version="1.0" encoding="utf-8 ...