0.启动参数
1.连接方式
2.配置优先级
参数
配置文件
配置段
3.字符集与比较规则
-
字符集
指的是某个字符范围的编码规则。 -
比较规则
是针对某个字符集中的字符比较大小的一种规则。 -
在
MySQL
中,一个字符集可以有若干种比较规则,其中有一个默认的比较规则,一个比较规则必须对应一个字符集。 -
查看
MySQL
中查看支持的字符集和比较规则的语句如下:SHOW (CHARACTER SET|CHARSET) [LIKE 匹配的模式]; SHOW COLLATION [LIKE 匹配的模式];
-
MySQL有四个级别的字符集和比较规则
-
服务器级别
character_set_server
表示服务器级别的字符集,collation_server
表示服务器级别的比较规则。 -
数据库级别
创建和修改数据库时可以指定字符集和比较规则:
CREATE DATABASE 数据库名 [[DEFAULT] CHARACTER SET 字符集名称] [[DEFAULT] COLLATE 比较规则名称]; ALTER DATABASE 数据库名 [[DEFAULT] CHARACTER SET 字符集名称] [[DEFAULT] COLLATE 比较规则名称];
character_set_database
表示当前数据库的字符集,collation_database
表示当前默认数据库的比较规则,这两个系统变量是只读的,不能修改。如果没有指定当前默认数据库,则变量与相应的服务器级系统变量具有相同的值。 -
表级别
创建和修改表的时候指定表的字符集和比较规则:
CREATE TABLE 表名 (列的信息) [[DEFAULT] CHARACTER SET 字符集名称] [COLLATE 比较规则名称]]; ALTER TABLE 表名 [[DEFAULT] CHARACTER SET 字符集名称] [COLLATE 比较规则名称];
-
列级别
创建和修改列定义的时候可以指定该列的字符集和比较规则:
CREATE TABLE 表名( 列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称], 其他列... ); ALTER TABLE 表名 MODIFY 列名 字符串类型 [CHARACTER SET 字符集名称] [COLLATE 比较规则名称];
-
从发送请求到接收结果过程中发生的字符集转换:
-
客户端使用操作系统的字符集编码请求字符串,向服务器发送的是经过编码的一个字节串。
-
服务器将客户端发送来的字节串采用
character_set_client
代表的字符集进行解码,将解码后的字符串再按照character_set_connection
代表的字符集进行编码。 -
如果
character_set_connection
代表的字符集和具体操作的列使用的字符集一致,则直接进行相应操作,否则的话需要将请求中的字符串从character_set_connection
代表的字符集转换为具体操作的列使用的字符集之后再进行操作。 -
将从某个列获取到的字节串从该列使用的字符集转换为
character_set_results
代表的字符集后发送到客户端。 -
客户端使用操作系统的字符集解析收到的结果集字节串。
在这个过程中各个系统变量的含义如下:
系统变量 描述 character_set_client
服务器解码请求时使用的字符集 character_set_connection
服务器处理请求时会把请求字符串从 character_set_client
转为character_set_connection
character_set_results
服务器向客户端返回数据时使用的字符集 一般情况下要使用保持这三个变量的值和客户端使用的字符集相同。
-
-
比较规则的作用通常体现比较字符串大小的表达式以及对某个字符串列进行排序中。
####
对于未知领域的探索向来就是社会主义核心价值观中的一部分
作为新一代社会主义接班人
不把它们搞懂怎么支援祖国建设呢
####