转载地址:http://www.2cto.com/database/201212/175541.html
MySQL的字符集支持(Character Set Support)有两个方面:字符集(Character set)和排序方式(Collation)。 www.2cto.com
对于字符集的支持细化到四个层次:服务器(server),
数据库(database),数据表(table)和连接(connection)。
一、MySQL默认字符集
MySQL对于字符集的指定可以细化到一个数据库,一张表,一列,应该用什么字符集。
但是,传统的程序在创建数据库和数据表时并没有使用那么复杂的配置,它们用的是默认的配置,那么,默认的配置从何而来呢?
(1)编译MySQL 时,指定了一个默认的字符集,这个字符集是 latin1;
(2)安装MySQL 时,可以在配置文件 (my.ini) 中指定一个默认的的字符集,如果没指定,这个值继承自编译时指定的;
(3)启动
mysqld 时,可以在命令行参数中指定一个默认的的字符集,如果没指定,这个值继承自配置文件中的配置,此时 character_set_server 被设定为这个默认的字符集;
(4)当创建一个新的数据库时,除非明确指定,这个数据库的字符集被缺省设定为character_set_server;
(5)当选定了一个数据库时,character_set_database 被设定为这个数据库默认的字符集;
(6)在这个数据库里创建一张表时,表默认的字符集被设定为 character_set_database,也就是这个数据库默认的字符集;
(7)当在表内设置一栏时,除非明确指定,否则此栏缺省的字符集就是表默认的字符集; www.2cto.com
简单的总结一下,如果什么地方都不修改,那么所有的数据库的所有表的所有栏位的都用latin1存储,不过我们如果安装 MySQL,一般都会选择多语言支持,也就是说,安装程序会自动在配置文件中把default_character_set 设置为 UTF-8,这保证了缺省情况下,所有的数据库的所有表的所有栏位的都用 UTF-8 存储。
二、查看字符集
1、查看MySQL数据库服务器和数据库字符集
mysql> show variables like '%char%';
+--------------------------+------------------------------------------+
| Variable_name | Value |
+--------------------------+------------------------------------------+
| character_set_client | latin1 |-- 客户端字符集
| character_set_connection | latin1 |
| character_set_database | latin1 |-- 数据库字符集
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | latin1 |-- 服务器字符集
| character_set_system | utf8 |
| character_sets_dir | D:\APMServ5.2.6\MySQL5.1\share\charsets\ |
+--------------------------+------------------------------------------+
2、查看MySQL数据表(table)的字符集
mysql> show table status from test like '%test%';
+---------------+--------+---------+------------+ +-------------------+
| Name | Engine | Version | Row_format | | Collation |
+---------------+--------+---------+------------+ +-------------------+
| test_char | MyISAM | 10 | Fixed | | hebrew_general_ci |
| test_inn | InnoDB | 10 | Compact | | latin1_swedish_ci |
| test_inn2 | InnoDB | 10 | Compact | | utf8_general_ci |
| test_priority | MyISAM | 10 | Dynamic | | latin1_swedish_ci |
| test_trans | InnoDB | 10 | Compact | | latin1_swedish_ci |
| test_view | NULL | NULL | NULL | | NULL |
+---------------+--------+---------+------------+ +-------------------+ www.2cto.com
3、查看MySQL数据列(column)的字符集
mysql> show full columns from v9_picture;
+-------------+-----------------------+----------------+
| Field | Type | Collation |
+-------------+-----------------------+----------------+
| id | mediumint(8) unsigned | NULL |
| catid | smallint(5) unsigned | NULL |
| typeid | smallint(5) unsigned | NULL |
| title | char(80) | gbk_chinese_ci |
| style | char(24) | gbk_chinese_ci |
| thumb | char(100) | gbk_chinese_ci |
| keywords | char(40) | gbk_chinese_ci |
| description | char(255) | gbk_chinese_ci |
| posids | tinyint(1) unsigned | NULL |
| url | char(100) | gbk_chinese_ci |
| listorder | tinyint(3) unsigned | NULL |
| status | tinyint(2) unsigned | NULL |
| sysadd | tinyint(1) unsigned | NULL |
| islink | tinyint(1) unsigned | NULL |
| username | char(20) | gbk_chinese_ci |
| inputtime | int(10) unsigned | NULL |
| updatetime | int(10) unsigned | NULL |
+-------------+-----------------------+----------------+
三、设置及修改字符集
1、创建数据库指定数据库的字符集
mysql> create database mydb character set gb2312;
mysql> use mydb
mysql> show variables like 'character_set_database';
+------------------------+--------+
| Variable_name | Value |
+------------------------+--------+
| character_set_database | gb2312 |
+------------------------+--------+
2、修改数据库的字符集
(1)、通过SQL修改
mysql> alter database mydb character set utf8;
mysql> show variables like 'character_set_database';
+------------------------+-------+
| Variable_name | Value |
+------------------------+-------+
| character_set_database | utf8 |
+------------------------+-------+
(2)、通过配置文件修改
修改文件$MYSQL_HOME\data\mydb\db.opt的内容
default-character-set=utf8
default-collation=utf8_general_ci
为
default-character-set=latin1
default-collation=latin1_swedish_ci
重启MYSQL后生效
3、通过SQL修改字符集
mysql> set character_set_client=utf8;
mysql> set character_set_connection=utf8;
mysql> set character_set_database=utf8;
mysql> set character_set_results=utf8;
mysql> set character_set_server=utf8;
mysql> set character_set_system=utf8;
mysql> set collation_connection=utf8;
mysql> set collation_database=utf8;
mysql> set collation_server=utf8;
- 【数据库】4.0 MySQL入门学习(四)——linux系统环境下MySQL安装
1.0 我的操作系统是CentOS Linux release 7.6.1810 (Core) 系统详细信息如下: Linux version 3.10.0-957.1.3.el7.x86_64 ( ...
- 【数据库】3.0 MySQL入门学习(三)——Windows系统环境下MySQL安装
1.0 我的操作系统是window10 专业版 64位.,不过至少windows7以上系统都是一样的. 关于MySQL如何下载,请参考博文: [数据库]2.0 如何获得MySQL以及MySQL安装 h ...
- 【数据库】9.0 MySQL入门学习(九)——获得数据库和表的信息、日期计算、查询、选择特殊列
1.0 SELECT语句用来从数据表中检索信息. SELECT what_to_select FROM which_table WHERE conditions_to_satisfy; what_to ...
- 【数据库】7.0 MySQL入门学习(七)——MySQL基本指令:帮助、清除输入、查询等
1.0 help == ? 帮助指令,查询某个指令的解释.用法.说明等.详情参考博文: [数据库]6.0 MySQL入门学习(六)——MySQL启动与停止.官方手册.文档查询 https://www. ...
- MySQl Study学习之--MySQl二进制日志管理
MySQl Study学习之--MySQl二进制日志管理 MySQL二进制日志(Binary Log) a.它包括的内容及作用例如以下: 包括了全部更新了数据或者已经潜在更新了数据(比方没 ...
- 【转】MYSQL入门学习之二:使用正则表达式搜索
转载地址:http://www.2cto.com/database/201212/173869.html 一.正则表达式介绍 www.2cto.com 正则表达式是用来匹配文本的特殊的串(字符 ...
- 【数据库】1.0 MySQL入门学习(一)——常识性知识
1.0 什么是MySQL(官方发音 My Ess Que Ell)? 是一个快速.多线程.多用户和强壮的SQL数据库服务器,SQL是世界上最流行的标准化数据库语言. 名字来源:共同创办人Monty W ...
- 【转】MYSQL入门学习之七:MYSQL常用函数
转载地址:http://www.2cto.com/database/201212/175864.html 一.数学函数 www.2cto.com ABS(x) ...
- 【数据库】2.0 MySQL入门学习(二)——如何获得MySQL以及MySQL安装
1.0 如何获得MySQL: www.oracle.com https://dev.mysql.com/downloads/ 2.0 例如进入Oracle官网,找到MySQL: 进入页面后,切换到“资 ...
随机推荐
- fetch the words from url
python code: import time,urllib fid=open('Friedrich Nietzsche Classic Words.txt','w') #1st ss='http: ...
- 单位px 转换成 rem
<script type="text/javascript"> var oHtml = document.documentElement; getSize(); win ...
- SQLSERVER:sqlserver2008r2安装好后,自动提示功能不可以使用
刚安装好的sqlserver2008r2x64,写一些sql时,自动提示功能失效了. 解决排查一: 找到tools->options->Text Editor->Transact-S ...
- 从零开始攻略PHP(4)——数组的使用
1.数组的概念 数组就是一个用来存储一系列变量值的命名区域. 每个数组元素有一个相关的索引(也成为关键字),它可以用来访问元素. PHP允许间隔性地使用数字或字符串作为数组的索引. 2.数字索引数组 ...
- 【java开发系列】—— JDK安装
前言 作为一个java开发者,安装JDK是不可避免的,但是配置路径却总是记不住,百度也有很多参考例子.这里仅仅当做以后参考的笔记记录. 说到JDK,就不得不提JRE.他们到底是什么呢? 通常我们进行j ...
- 网易免费邮件开启smtp教程
网易免费邮件开启smtp教程 作者:尹正杰 版权声明:原创作品,谢绝转载!否则将追究法律责任. 我们在部署zabbix邮件报警中可能会用到163.com.那么我们如何去开启smtp服务呢? 1 ...
- Appium的理念
1.Appium的架构:C/S模式 Appium的核心是暴漏REST API的WebServer,appium接收来自客户端的连接请求,监听由客户端发起的命令,在移动设备上执行这些命令,这些命令的执行 ...
- CSS_03_01_CSS类选择器
第01步:编写css样式:class_01.css @charset "utf-8"; /* CSS Document */ div.class01{ background-col ...
- android中获取打气筒的几种方式
1,简单说明,打气筒就是将我们的xml布局转换为我们的view对象,不扯远了,直接看代码 A:从context中获取 LayoutInflater inflater1 = LayoutInflater ...
- SSH+DWZ、JQuery-UI ,swfobject.embedSWF属性与用法,IE下日期控件被flash控件挡住
---恢复内容开始--- 最近在做SSH+DWZ(JQuery-UI)项目,在用到图表问题的时候,出现在IE下面,日期控件被flash被挡住而不能选取日期情况,经在网络搜查,现在解决办法如下: 1.首 ...