上一篇
如何查看MySQL字符集编码?
- 数据库
- 2025-06-09
- 4488
查看MySQL数据库字符集编码,可使用命令: ,
SHOW VARIABLES LIKE 'character_set%';
,或查询具体数据库: ,
SHOW CREATE DATABASE 数据库名;
,亦或检查表结构: ,
SHOW CREATE TABLE 表名;
通过SQL命令查看(推荐)
查看服务器全局字符集设置
SHOW VARIABLES LIKE 'character_set_%'; SHOW VARIABLES LIKE 'collation_%';
- 关键结果:
character_set_server
:服务器默认字符集character_set_database
:当前数据库默认字符集character_set_client
:客户端使用的字符集
查看特定数据库的字符集
SELECT SCHEMA_NAME AS '数据库名', DEFAULT_CHARACTER_SET_NAME AS '字符集', DEFAULT_COLLATION_NAME AS '排序规则' FROM information_schema.SCHEMATA WHERE SCHEMA_NAME = '你的数据库名';
查看数据表的字符集
SELECT TABLE_SCHEMA AS '数据库名', TABLE_NAME AS '表名', TABLE_COLLATION AS '排序规则' FROM information_schema.TABLES WHERE TABLE_SCHEMA = '你的数据库名';
查看表中列的字符集
SELECT TABLE_NAME AS '表名', COLUMN_NAME AS '列名', CHARACTER_SET_NAME AS '字符集', COLLATION_NAME AS '排序规则' FROM information_schema.COLUMNS WHERE TABLE_SCHEMA = '你的数据库名' AND CHARACTER_SET_NAME IS NOT NULL; -- 仅显示文本类型列
通过MySQL命令行工具
连接数据库后查看状态
mysql> STATUS;
在输出中查找:Server characterset: utf8mb4
(服务器字符集)Db characterset: utf8mb4
(当前数据库字符集)
创建数据库时显式声明(验证用)
CREATE DATABASE test_db CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;
创建后使用 SHOW CREATE DATABASE test_db;
确认字符集。
图形化工具查看(以phpMyAdmin为例)
- 登录phpMyAdmin → 选择目标数据库
- 查看数据库字符集:顶部导航栏显示当前库字符集(如
utf8mb4_unicode_ci
) - 查看表字符集:
- 进入数据库 → 点击目标表 → 顶部标签页选择 “操作”
- 在 “表选项” 中查看 “排序规则”
- 查看列字符集:
- 进入表结构 → 点击目标列的 “修改” → 查看 “排序规则” 下拉菜单
关键注意事项
-
优先级规则:
列的字符集 > 表的字符集 > 数据库的字符集 > 服务器字符集
(低层级设置会覆盖全局默认值) -
推荐字符集:
- 使用
utf8mb4
而非utf8
,完整支持4字节Unicode(如Emoji) - 常用排序规则:
utf8mb4_unicode_ci
(通用)或utf8mb4_bin
(大小写敏感)
- 使用
-
乱码排查:
确保以下三项一致:- 客户端连接字符集(如JDBC设置
useUnicode=true&characterEncoding=UTF-8
) - 数据存储字符集(通过上述方法验证)
- 应用输出编码(如HTML的
<meta charset="UTF-8">
)
- 客户端连接字符集(如JDBC设置
为什么字符集至关重要?
- 数据完整性:错误字符集导致乱码(如中文变)
- 多语言支持:
utf8mb4
覆盖全球所有语言字符 - 兼容性:移动端需支持Emoji必须用
utf8mb4
- 性能影响:校对规则(
collation
)影响索引效率和查询排序
最佳实践:
新建项目一律使用utf8mb4
+utf8mb4_unicode_ci
,并在连接字符串中显式指定字符集。
引用说明:
本文方法基于MySQL 8.0官方文档,字符集管理部分参考MySQL Character Set Support,命令行操作适用于Linux/Windows/macOS全平台。