您的位置:首页 > 数据库 > MySQL

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

2017-03-20 15:42 162 查看
最近在学习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;

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

如果也遇到了类似问题,不如按照上面讲的试一试。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签:  mysql 查询 插入 中文 cmd