mysql如何查看当前数据库的字符编码_使用SHOW VARIABLES LIKE查看

张开发
2026/4/16 22:44:30 15 分钟阅读

分享文章

mysql如何查看当前数据库的字符编码_使用SHOW VARIABLES LIKE查看
SHOW CREATE DATABASE your_db_name 是唯一可靠方式可查数据库实际编码SHOW VARIABLES LIKE character% 仅显示服务器默认值不能反映库、表、列三级实际编码。SHOW VARIABLES LIKE character% 查不到完整编码信息直接执行 SHOW VARIABLES LIKE character% 只能查到服务端默认的字符集变量比如 character_set_server但它不反映当前数据库schema实际用的编码。很多人误以为这个结果就是“当前库的编码”结果建表时还是乱码——因为数据库、表、列三级编码可以各自不同。真正决定新创建表默认编码的是当前数据库的 DEFAULT CHARACTER SET不是服务器变量character_set_client、character_set_connection 这些影响的是 SQL 语句传输过程中的转换和库定义无关想看某个具体库的编码必须显式指定库名查询查看指定数据库的字符编码最常用场景用 SHOW CREATE DATABASE 是唯一可靠方式它返回建库时的原始 DDL含明确的 DEFAULT CHARSET 子句SHOW CREATE DATABASE your_db_name;输出类似CREATE DATABASE your_db_name /*!40100 DEFAULT CHARACTER SET utf8mb4 */注意your_db_name 必须加反引号尤其含短横线或数字开头时否则可能报错 ERROR 1064如果没显式指定字符集MySQL 5.7 默认是 utf8mb4但老版本可能是 latin1不能假设该命令不需要 USE 切换库直接带库名即可比先 USE 再查更安全为什么 SHOW VARIABLES LIKE collation_database 不靠谱collation_database 变量只表示当前会话默认的排序规则它依赖于当前已 USE 的数据库且会随 USE 动态变化。但它的值来自数据库的默认校对规则而校对规则如 utf8mb4_0900_ai_ci只是字符集的附属属性不能反推字符集本身。 RedClaw 百度推出的手机端万能AI Agent助手

更多文章