在windows的cmd中向MySQL查询与输入中文

本文档介绍了如何在Windows的CMD环境下解决MySQL查询显示和输入中文出现乱码的问题。通过调整字符集设置,如设置`character_set_client`、`character_set_server`和`character_set_connection`为`gbk`,可以确保中文正常显示和插入。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

最近在学习MySQL时遇到了无法在cmd显示中文和通过cmd向Mysql插入中文的问题,
下面就简单说下我是怎么解决的。


在往下进行之前,先介绍一个Mysql命令:
mysql> show variables like "char%";
+--------------------------+--------------------------------------------------------------------------+
| Variable_name            | Value                                                                    |
+--------------------------+--------------------------------------------------------------------------+
| character_set_client     | latin1                                                                   |
| character_set_connection | latin1                                                                   |
| character_set_database   | latin1                                                                   |
| character_set_filesystem | binary                                                                   |
| character_set_results    | latin1                                                                   |
| character_set_server     | latin1                                                                   |
| character_set_system     | utf8                                                                     |
| character_sets_dir       | C:\Program Files\mysql\share\charsets\ |
+--------------------------+--------------------------------------------------------------------------+
8 rows in set (0.00 sec)


这个命令查询了Mysql字符集编码方式相关的几个变量,若要正确在cmd中显示与输入中文,需要对这几个变量进行设置。


首先我是通过导入sql格式的文档创建Mysql数据表的(怎么导入上篇博文有讲到),如下是导入的sql文档的主要内容:


SET NAMES utf8;
SET FOREIGN_KEY_CHECKS = 0;


DROP TABLE IF EXISTS `websites`;
CREATE TABLE `websites` (
  `id` int(11) NOT NULL AUTO_INCREMENT,
  `name` char(20) NOT NULL DEFAULT '' COMMENT '站点名称',
  `url` varchar(255) NOT NULL DEFAULT '',
  `alexa` int(11) NOT NULL DEFAULT '0' COMMENT 'Alexa 排名',
  `country` char(10) NOT NULL DEFAULT '' COMMENT '国家',
  PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=6 DEFAULT CHARSET=utf8;


BEGIN;
INSERT INTO `websites` VALUES ('1', 'Google', 'https://www.google.cm/', '1', 'USA'), ('2', '淘宝', 'https://www.taobao.com/', '13', 'CN'), ('3', '菜鸟教程', 'http://www.runoob.com/', '4689', 'CN'), ('4', '微博', 'http://weibo.com/', '20', 'CN'), ('5', 'Facebook', 'https://www.facebook.com/', '3', 'USA');
COMMIT;


SET FOREIGN_KEY_CHECKS = 1;


导入该表后,在cmd使用select查询结果中文显示的都是乱码,使用mysql> show variables like "char%";发现character_set_results变量值与mcd编码方式不一致,


上网查询后使用命令mysql> set character_set_results=gbk; 之后再使用select查询,发现中文能正常显示了。




试图通过命令mysql> insert into websites (name, url, alexa, country) values ("百度", "https://www.baidu.com/", 4, "CN"); 插入一个新行,使用select后


发现新插入的行中文依旧是乱码,进行如下设置set character_set_client=gbk;   set character_set_server=gbk;  set character_set_connection=gbk;


之后再插入新行,发现中文能够正常显示。


如果也遇到了类似问题,不如按照上面讲的试一试。
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值