答案是统一字符集为UTF-8。需检查并设置character_set_client、connection、results和server为utf8mb4,通过SET NAMES 'utf8mb4'临时生效,或在my.cnf/my.ini中配置[client]和[mysqld]相关参数永久生效,同时确保终端支持UTF-8编码,如Windows执行chcp 65001,Linux设置LANG=en_US.UTF-8等,最终实现全流程UTF-8编码一致。

MySQL命令行出现乱码,通常是因为字符集设置不一致导致的。要解决这个问题,关键是确保客户端、服务端和连接使用的字符集统一为支持中文的编码,比如 UTF-8。下面从几个方面来排查和修复。
1. 查看当前字符集设置
登录MySQL后,执行以下命令查看各项字符集配置:
SHOW VARIABLES LIKE 'character_set_%'; SHOW VARIABLES LIKE 'collation_%';
重点关注以下几个变量:
- character_set_client:客户端发送数据的编码
- character_set_connection:连接层编码
- character_set_results:查询结果返回的编码
- character_set_server:服务器默认编码
如果这些不是 utf8 或 utf8mb4,就容易出现乱码。
2. 临时解决方案:手动设置字符集
在当前会话中运行以下命令,强制使用 UTF-8 编码:
SET NAMES 'utf8mb4';
这条命令等价于同时设置 client、connection 和 results 的字符集。执行后再查询数据,乱码问题通常会立即缓解。
JTBC CMS(5.0) 是一款基于PHP和MySQL的内容管理系统原生全栈开发框架,开源协议为AGPLv3,没有任何附加条款。系统可以通过命令行一键安装,源码方面不基于任何第三方框架,不使用任何脚手架,仅依赖一些常见的第三方类库如图表组件等,您只需要了解最基本的前端知识就能很敏捷的进行二次开发,同时我们对于常见的前端功能做了Web Component方式的封装,即便是您仅了解HTML/CSS也
3. 永久解决:修改 MySQL 配置文件
编辑 MySQL 的配置文件(位置因系统而异):
- Linux:通常是 /etc/my.cnf 或 /etc/mysql/my.cnf
- Windows:一般是 my.ini 文件,位于 MySQL 安装目录下
在文件中添加或修改以下内容:
[client] default-character-set = utf8mb4 [mysqld] character-set-server = utf8mb4 collation-server = utf8mb4_unicode_ci skip-character-set-client-handshake
保存后重启 MySQL 服务:
- Linux:sudo systemctl restart mysql
- Windows:通过服务管理器重启 MySQL 服务
4. 确保终端支持 UTF-8
即使 MySQL 设置正确,如果命令行终端本身不支持 UTF-8,仍然会显示乱码。
- Windows 命令提示符(cmd):运行 chcp 65001 切换到 UTF-8 编码,并选择支持中文的字体(如 Consolas 或 Lucida Console)
- Linux/macOS 终端:确认环境变量 LANG 设置为 zh_CN.UTF-8 或 en_US.UTF-8
基本上就这些。只要保证客户端、服务端、连接和终端都使用统一的 UTF-8 编码,MySQL 命令行乱码问题就能彻底解决。









