解决mysql在CMD中乱码需统一字符编码。首先查看字符集配置:执行SHOW VARIABLES LIKE ‘character_set_%’; 和 SHOW VARIABLES LIKE ‘collation_%’; 确认client、connection、results编码。若不一致,可临时使用SET NAMES gbk; 设置为gbk编码以解决中文乱码,但会话结束后失效。永久方案是修改my.ini文件,在[mysqld]下添加character-set-server=utf8和collation-server=utf8_general_ci,在[client]与[mysql]下添加default-character-set=gbk,保存后重启MySQL服务。也可将CMD代码页改为UTF-8:运行chcp 65001,并设置字体为Consolas或Lucida console以改善显示。核心是确保MySQL客户端与CMD编码一致。

MySQL在CMD命令行出现乱码,主要是因为字符编码不一致导致的。windows系统的CMD默认使用GBK或GB2312编码,而MySQL通常使用UTF-8编码,两者不匹配就会显示乱码。解决这个问题需要统一字符集设置。
查看当前字符编码设置
登录MySQL后,执行以下命令查看当前字符集配置:
SHOW VARIABLES LIKE 'character_set_%'; SHOW VARIABLES LIKE 'collation_%';
重点关注 character_set_client、character_set_connection、character_set_results 这三项,它们决定了客户端与服务器之间的字符传输编码。
临时解决方案:手动设置字符集
如果只是临时使用,可以在进入MySQL后立即设置字符集为gbk(适用于中文windows系统):
SET NAMES gbk;
这条命令相当于同时设置client、connection、results的字符集为gbk,能立刻解决CMD下的中文乱码问题。但该设置在会话结束时失效。
永久解决方案:修改MySQL配置文件
要一劳永逸地解决问题,需修改MySQL的配置文件my.ini(通常位于mysql安装目录或C:Windows)。
在[mysqld]段落下添加或修改以下内容:
[mysqld] character-set-server=utf8 collation-server=utf8_general_ci
在[client]和[mysql]段落中添加:
[client] default-character-set=gbk [mysql] default-character-set=gbk
保存后重启MySQL服务,使配置生效。
修改CMD代码页(可选)
也可以尝试将CMD的代码页改为UTF-8:
chcp 65001
然后启动MySQL客户端。注意:部分字体在UTF-8模式下可能显示异常,可右键CMD标题栏→属性→字体,选择“Consolas”或“Lucida Console”改善显示效果。
基本上就这些方法。关键是让MySQL客户端、连接、结果输出与CMD的编码保持一致,乱码问题就能解决。