查看字符编码
-- 查看当前支持哪些字符集
show character set;
服务器据集: character_set_server, collation_server
数据库默认数据集:character_set_database, collation_database
系统元数据数据集:character_set_system, collation_system
连接数据集:character_set_connection, collation_connection
结果数据集:character_set_results, collation_results
服务器字符集和排序
服务器字符集和排序规则,可以在服务启动的时候通过命令行参数或选项文件设置,也可以在运行时修改。
不指定字符集,则默认使用 utf8mb4,不指定排序规则,则根据当前字符集确定默认的排序规则。、
如下三条命是等价的:
mysqld
# 默认字符集是 utf8mb4
mysqld --character-set-server=utf8mb4
# utf8mb4 的默认排序规则是 utf8mb4_0900_ai_ci
mysqld --character-set-server=utf8mb4 \
--collation-server=utf8mb4_0900_ai_ci
可以在编译时修改默认字符集。
服务器的默认字符集设置,有且仅有唯一一个用途:crate database 创建数据库的时候,如果没有指定数据库的默认字符集,则使用服务器
设置的字符集和排序规则。
查看服务器字符集设置,使用系统变量 character_ser_server, 和 collaction_server.
数据库字符集和排序规则
每个数据库都有默认的字符集合排序规则设置。create database 和 alter database 语句都有可选地字符集设置子句,这个子句允许数据库使用不同于当前服务器字符集的字符集。
CREATE DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
ALTER DATABASE db_name
[[DEFAULT] CHARACTER SET charset_name]
[[DEFAULT] COLLATE collation_name]
数据库的各种选项存放在数据字典中,这个表 INFORMATION_SCHEMA.SCHEMATA 。
每个连接都有个默