时间:2019年8月16号 星期五 22:40

建表语句和插入数据语句如下:

create table account(id int primary key auto_increment,name varchar(100) not null,money float not null
)character set utf8 collate utf8_general_ci;
insert into account(name, money) values("Dylan1", 10000);
insert into account(name, money) values("Dylan2", 10000);
insert into account(name, money) values("Dylan3", 10000);
insert into account(name, money) values("张三", 10000);
insert into account(name, money) values("李四", 10000);

一、存在问题:

问题1:在Windows 10 的dos下用命令行向mysql数据库中插入中文数据出现如下错误:

mysql> insert into account(name, money) values("张三", 10000);
ERROR 1366 (HY000): Incorrect string value: '\xC7\xF1\xBC\xD2\xB1\xA6' for column 'name' at row 1

问题2:在Windows 10 的dos下用命令行显示数据表数据出现中文数据乱码现象如下:

mysql> select * from account;
+----+-----------+-------+
| id | name      | money |
+----+-----------+-------+
|  1 | Dylan1    | 10000 |
|  2 | Dylan2    | 10000 |
|  3 | Dylan3    | 10000 |
|  4 | 閭卞瀹?   | 10000 |
|  5 | 閭卞瀹?   | 10000 |
+----+-----------+-------+

二、解决思路:

1、使用“show create table 表名;”命令查看所创建表格的编码格式

mysql> show create table account;
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| Table   | Create Table                                                                                                                                                                                                            |
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+
| account | CREATE TABLE `account` (`id` int(11) NOT NULL AUTO_INCREMENT,`name` varchar(100) CHARACTER SET gbk NOT NULL,`money` float NOT NULL,PRIMARY KEY (`id`)
) ENGINE=InnoDB AUTO_INCREMENT=7 DEFAULT CHARSET=utf8 |
+---------+-------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------------+

2、使用"show variables like ‘character%’;"命令查看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       | D:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+

下图出自https://blog.csdn.net/u010682362/article/details/42125317关于MySQL如何修改character_set_client的编码问题

3、解决方法

(1)方法一(ps:此方法存在弊端,只能暂时性地解决当前操作的问题,需要每次进入mysql客户端时重新设置):

​ 需要注意的是,mysql客户端默认的编码格式和我们的Windows操作系统一样,都是gbk,而mysql数据库的编码格式一般是utf8。只要保证mysql客户端的编码格式和mysql数据库的编码格式一样就能解决问题。我们只需要改变如下两个变量编码格式为gbk即可:

mysql> set character_set_client=gbk;
//用命令行向mysql数据库中插入中文数据不再出现ERROR 1366
mysql> set character_set_results=gbk;
//用命令行返回数据表数据不再出现中文数据乱码现象

(2)方法二(ps:此方法可以使设置永久有效):

​ 找到mysql安装目录下的my.ini配置文件,并打开找到default-character-set,把编码改为gbk即可

[外链图片转存失败(img-KaOdUrtY-1566048345371)(C:\Users\宝爷\AppData\Roaming\Typora\typora-user-images\1565966897866.png)]

[外链图片转存失败(img-tGQ16Knz-1566048345374)(C:\Users\宝爷\AppData\Roaming\Typora\typora-user-images\1565967048382.png)]

mysql> show variables like'character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | gbk                                                     |
| character_set_connection | gbk                                                     |
| character_set_database   | utf8                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | gbk                                                     |
| character_set_server     | utf8                                                    |
| character_set_system     | utf8                                                    |
| character_sets_dir       | D:\Program Files\MySQL\MySQL Server 5.5\share\charsets\ |
+--------------------------+---------------------------------------------------------+
mysql> select * from account;
+----+--------+-------+
| id | name   | money |
+----+--------+-------+
|  1 | Dylan1 | 10000 |
|  2 | Dylan2 | 10000 |
|  3 | Dylan3 | 10000 |
|  4 | 张三       | 10000 |
|  5 | 李四       | 10000 |
+----+--------+-------+

解决mysql客户端执行插入中文数据命令出错以及中文乱码问题相关推荐

  1. 《1---关于解决MySQL在控制台插入中文乱码问题》

    <1---关于解决MySQL在控制台插入中文乱码问题> 参考文章: (1)<1---关于解决MySQL在控制台插入中文乱码问题> (2)https://www.cnblogs. ...

  2. php 重复写入数据,完美解决Thinkphp3.2中插入相同数据的问题

    问题描述 今天在使用TP3.2插入数据的时候,为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现 ...

  3. mysql秒退原因_解决MySql客户端秒退问题(找不到my.ini)

    问题说明(环境:windows7,MySql8.0) 今天安装好MySql后启动MySql服务-->启动服务都失败的就不要往下看了,自行百度解决. 打开客户端秒退,但在cmd中是可以使用数据库的 ...

  4. mysql 57授权失败_MYSQL教程完美解决mysql客户端授权后连接失败的问题

    <MYSQL教程完美解决mysql客户端授权后连接失败的问题>要点: 本文介绍了MYSQL教程完美解决mysql客户端授权后连接失败的问题,希望对您有用.如果有疑问,可以联系我们. MYS ...

  5. 解决mysql不是内部或外部命令

    解决mysql不是内部或外部命令 现象 原因 命令中的mysql实际上是一个可执行程序 出现报错的原因是,系统找不到mysql.exe这个程序 解决办法就是 给系统一个目录,让系统可以找到 把mysq ...

  6. mysql 授权 失败_完美解决mysql客户端授权后连接失败的问题

    在本地(192.168.1.152)部署好mysql环境,授权远程客户机192.168.1.%连接本机的mysql,在iptables防火墙也已开通3306端口. 如下: mysql> sele ...

  7. mysql客户端能运行sql文件_通过mysql客户端执行sql文件的方法

    选择要执行sql文件,点击"打开"按钮,如图 方法/步骤 点击"ok"按钮,如图: 下面是学习啦小编为大家整理的关于通过mysql客户端执行sql文件的方法,一 ...

  8. 解决MySQL删除和插入数据很慢的问题

    推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...

  9. mysql不是内部批处理文件怎么解决,mysql不是内部或外部命令也不是可运行的程序或批处理文件...

    MySQL集群 MySQL集群 1.MySQL为什么需要集群? 问题:100W的客户端,每3分钟上传一次订单数据,数据库怎么设计? MySQL和MongoDB插入数据比较: MySQL:600/s事务 ...

最新文章

  1. Mongoose源码剖析:Introduction and Installation
  2. layui 导航收缩代码_pycharm的十个小技巧,让你写代码效率翻倍
  3. JAVA并发之多线程基础(5)
  4. 成功解决torch.cuda.CudaError: CUDA driver version is insufficient for CUDA runtime version (35) [ WARN:0
  5. loadrunner基础知识问答(转)
  6. 网易云信,发送验证码短信C#版代码
  7. 认清SQL_Server_2005的基于行版本控制的两种隔离级别
  8. 小程序服务器api接口,百度智能小程序API 开放接口
  9. 14位顶级哲学家对生命的经典感悟!若能领悟受益终生!
  10. 《计算机应用基础》18春作业,【北语网院】18春《计算机应用基础》作业_4.pdf...
  11. 我一直在想500年前我是不是孙悟空,但是事实上我却是至尊宝。这就是宿命(capsicum.heorhome.net)
  12. MySQL(八)事务的隔离级别
  13. python运维书_python运维书
  14. FPGA学习笔记-IP核-FIFO
  15. 功率因数 matlab,matlab功率因数测量
  16. mysql域是什么_数据库中的“域”是什么?
  17. 推荐几个不错的黑科技网站
  18. TienLen游戏模型、算法,类似斗地主游戏算法
  19. 带你走进缓存世界(1):漫谈缓存
  20. 数据中台:数据中台技术架构详解

热门文章

  1. conductor 系统任务
  2. 魔百盒M304A南传-当贝桌面-免拆卡刷固件包
  3. “python扩展正在加载”一直在加载或加载python扩展失败
  4. ofbiz mysql_Ofbiz12.04 进阶之一   如何使ofbiz连接Mysql
  5. Dev-C++ 如何调试程序
  6. 统信UOS配置X11VNC服务--基于systemd
  7. DJL调用目标检测模型检测rtsp视频流
  8. 展讯平台-LCD驱动
  9. HarmonyOS开发21:CommonDialog抽取工具类
  10. c语言趣味程序设计过桥,C语言趣味程序设计——题目百例.doc