当前位置:首页 > 数据库 > 正文

如何查看MySQL字符集编码?

查看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; 确认字符集。

如何查看MySQL字符集编码?  第1张


图形化工具查看(以phpMyAdmin为例)

  1. 登录phpMyAdmin → 选择目标数据库
  2. 查看数据库字符集:顶部导航栏显示当前库字符集(如 utf8mb4_unicode_ci
  3. 查看表字符集
    • 进入数据库 → 点击目标表 → 顶部标签页选择 “操作”
    • “表选项” 中查看 “排序规则”
  4. 查看列字符集
    • 进入表结构 → 点击目标列的 “修改” → 查看 “排序规则” 下拉菜单

关键注意事项

  1. 优先级规则
    列的字符集 > 表的字符集 > 数据库的字符集 > 服务器字符集
    (低层级设置会覆盖全局默认值)

  2. 推荐字符集

    • 使用 utf8mb4 而非 utf8,完整支持4字节Unicode(如Emoji)
    • 常用排序规则:utf8mb4_unicode_ci(通用)或 utf8mb4_bin(大小写敏感)
  3. 乱码排查
    确保以下三项一致:

    • 客户端连接字符集(如JDBC设置useUnicode=true&characterEncoding=UTF-8
    • 数据存储字符集(通过上述方法验证)
    • 应用输出编码(如HTML的<meta charset="UTF-8">

为什么字符集至关重要?

  • 数据完整性:错误字符集导致乱码(如中文变)
  • 多语言支持utf8mb4覆盖全球所有语言字符
  • 兼容性:移动端需支持Emoji必须用utf8mb4
  • 性能影响:校对规则(collation)影响索引效率和查询排序

最佳实践
新建项目一律使用 utf8mb4 + utf8mb4_unicode_ci,并在连接字符串中显式指定字符集。


引用说明
本文方法基于MySQL 8.0官方文档,字符集管理部分参考MySQL Character Set Support,命令行操作适用于Linux/Windows/macOS全平台。

0