DOS命令行操作MySQL数据库中文乱码问题解决

时间:2023-03-09 04:18:49
DOS命令行操作MySQL数据库中文乱码问题解决

我们在 dos 命令行操作中文时,会报错

insert into user(username,password) values(‘张三’,’123’);
ERROR 1366 (HY000): Incorrect string value: '\xD5\xC5\xC8\xFD' for column
'username' at row 1

原因:因为 mysql 的客户端编码的问题我们的是 utf8,而系统的 cmd 窗口编码是 gbk
解决方案(临时解决方案):修改 mysql 客户端编码。

show variables like 'character%'; 查看所有 mysql 的编码

DOS命令行操作MySQL数据库中文乱码问题解决

在图中与客户端有关的编码设置:
client connetion result 和客户端相关
database server system 和服务器端相关

将客户端编码修改为 gbk.

set character_set_results=gbk; / set names gbk;

以上操作,只针对当前窗口有效果,如果关闭了服务器便失效。如果想要永久修改,通过以下方式:

在 mysql 安装目录下有 my.ini文件

default-character-set=gbk 客户端编码设置
character-set-server=utf8 服务器端编码设置

注意:修改完成配置文件,重启服务