在命令行下,Mysql显示各个端所使用的字符集命令

win10中,在命令行情况下,Mysql显示各个端所使用的字符集命令:

Microsoft Windows [版本 10.0.16299.64]
(c) 2017 Microsoft Corporation。保留所有权利。

C:\Windows\system32>mysql -u root -proot
Welcome to the MySQL monitor.  Commands end with ; or \g.
Your MySQL connection id is 1
Server version: 5.5.27 MySQL Community Server (GPL)

Copyright (c) 2000, 2011, Oracle and/or its affiliates. All rights reserved.

Oracle is a registered trademark of Oracle Corporation and/or its
affiliates. Other names may be trademarks of their respective
owners.

Type 'help;' or '\h' for help. Type '\c' to clear the current input statement.

mysql> create database day28;
Query OK, 1 row affected (0.01 sec)

mysql>
mysql> use day28;
Database changed
mysql>
mysql> #用户表
mysql> CREATE TABLE S_User(
    -> userID INT NOT NULL AUTO_INCREMENT, #主键ID
    -> userName VARCHAR(50) NULL,   #用户姓名
    -> loginName VARCHAR(50) NULL,  #登录名
    -> loginPwd VARCHAR(50) NULL,   #密码#
    -> gender VARCHAR(10) NULL,     #性别(例如:男,女)
    -> birthday VARCHAR(50) NULL,   #出生日期
    -> education VARCHAR(20) NULL,  #学历(例如:研究生、本科、专科、高中)
    -> telephone VARCHAR(50) NULL,  #电话
    -> hobby VARCHAR(20) NULL,      #兴趣爱好(例如:体育、旅游、逛街)
    -> path VARCHAR(500) NULL,      #上传路径(path路径)
    -> filename VARCHAR(100) NULL,  #上传文件名称(文件名)
    -> remark VARCHAR(500) NULL,    #备注
    -> PRIMARY KEY (userID)
    -> );
Query OK, 0 rows affected (0.02 sec)

mysql>
mysql> #初始化数据:默认用户名和密码是admin
mysql> INSERT INTO s_user (userID,userName,loginName,loginPwd) VALUES (1,'超级管理员','admin','admin');
ERROR 1366 (HY000): Incorrect string value: '\xB3\xAC\xBC\xB6\xB9\xDC...' for column 'userName' at row 1  #客户端传来的数据的编码是gbk,而Mysql针对客户端默认使用的是utf8,所以会报错
mysql>
mysql> show variables like 'character%';  #显示各个端所使用的字符集,只对当前对话窗口有用
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8                                                    |
| character_set_connection | utf8                                                    |
| character_set_database   | utf8                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8                                                    |
| character_set_server     | utf8                                                    |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set (0.01 sec)

mysql> set character_set_client=gbk;  #设置Mysql针对客户端使用字符集为gbk编码,报错解决
Query OK, 0 rows affected (0.00 sec)

mysql> INSERT INTO s_user (userID,userName,loginName,loginPwd) VALUES (1,'超级管理员','admin','admin');
Query OK, 1 row affected (0.01 sec)

mysql> select * from s_user;
+--------+-----------------+-----------+----------+--------+----------+-----------+-----------+-------+------+----------+--------+
| userID | userName        | loginName | loginPwd | gender | birthday | education | telephone | hobby | path | filename | remark |
+--------+-----------------+-----------+----------+--------+----------+-----------+-----------+-------+------+----------+--------+
|      1 | 瓒呯骇绠$悊鍛?     | admin     | admin    | NULL   | NULL     | NULL      | NULL      | NULL  | NULL | NULL     | NULL   |
+--------+-----------------+-----------+----------+--------+----------+-----------+-----------+-------+------+----------+--------+
1 row in set (0.00 sec)  #因为Mysql针对默认结果集使用的是utf8编码,而我们的pc端使用的是gbk编码,所以会报错

mysql> set character_set_results=gbk;  #设置Mysql针对数据返回结果集使用字符集为gbk编码,报错解决
Query OK, 0 rows affected (0.00 sec)

mysql> select * from s_user;
+--------+------------+-----------+----------+--------+----------+-----------+-----------+-------+------+----------+--------+
| userID | userName   | loginName | loginPwd | gender | birthday | education | telephone | hobby | path | filename | remark |
+--------+------------+-----------+----------+--------+----------+-----------+-----------+-------+------+----------+--------+
|      1 | 超级管理员          | admin     | admin    | NULL   | NULL     | NULL      | NULL      | NULL  | NULL | NULL     | NULL   |
+--------+------------+-----------+----------+--------+----------+-----------+-----------+-------+------+----------+--------+
1 row in set (0.01 sec)

mysql>

本文参与腾讯云自媒体分享计划,欢迎正在阅读的你也加入,一起分享。

发表于

我来说两句

0 条评论
登录 后参与评论

相关文章

来自专栏技术记录

mySQL优化方案

1、选取最适用的字段属性 MySQL可以很好的支持大数据量的存取,但是一般说来,数据库中的表越小,在它上面执行的查询也就会越快。因此,在创建表的时候,为了获得...

21180
来自专栏idba

MySQL 各种SQL语句加锁分析

Locking read( SELECT ... FOR UPDATE or SELECT ... LOCK IN SHARE MODE),UPDATE以及DE...

13320
来自专栏Python

Innodb与Myisam引擎的区别与应用场景

1.区别: (1)事务处理: MyISAM是非事务安全型的,而InnoDB是事务安全型的(支持事务处理等高级处理); (2)锁机制不同: MyISAM是表级锁,...

39570
来自专栏Netkiller

数据库安全·Token 认证

以下节选择《Netkiller Architect 手札》 作者:netkiller 地址 http://www.netkiller.cn/archit...

39640
来自专栏杨建荣的学习笔记

MySQL自增列的重复值问题(r12笔记第25天)

如果需要把一台MySQL中的数据定期归档到另外一台MySQL历史库中,那么很可能会发现会有重复值的问题,导致数据导入会失败,而这个问题其实是和自增列的重复...

36860
来自专栏杨建荣的学习笔记

MySQL中一个文档疏漏的分析测试

最近看到Percona的工程师Agustín写了一篇博客,是关于MySQL触发器和可更新视图的一个观点,具体链接可以参考 https://www.percona...

34090
来自专栏Netkiller

数据库记录安全解决方案

数据库记录安全解决方案 http://netkiller.github.io/journal/mysql.security.html 摘要 数据库记录防删除,放...

41960
来自专栏企鹅号快讯

python数据处理实战-自动统计mysql数据库数据表每天数据量

日常报表统计,日总量,日增量不可避免,这篇文章我们从实际应用出发,从逻辑思考到最后写出代码,一步步分析拆解 一.表结构设计 既然想统计每一张表每天的数据量,后续...

56070
来自专栏数据处理

hive sql 分区

将t2数据插入到t1,分区日期是‘2018-10-27’,使用overwrite会删除之前分区所有内容,into将内容追加到分区 注意SELECT必须在同一行...

16320
来自专栏杨建荣的学习笔记

巧用shell生成数据库检查脚本 (74天)

在生产环境中需要部署大量的数据变更。对于新增的表,需要注意权限和同义词等。但是手动去检查这些变更是否生效就很麻烦。而且也不易维护,比如写好了一个脚本,可能在过一...

33770

扫码关注云+社区

领取腾讯云代金券