解决mysql客户端执行插入中文数据命令出错以及中文乱码问题
时间: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---关于解决MySQL在控制台插入中文乱码问题》
<1---关于解决MySQL在控制台插入中文乱码问题> 参考文章: (1)<1---关于解决MySQL在控制台插入中文乱码问题> (2)https://www.cnblogs. ...
- php 重复写入数据,完美解决Thinkphp3.2中插入相同数据的问题
问题描述 今天在使用TP3.2插入数据的时候,为了避免插入相同的数据(所谓相同的数据,其主键相同或者是唯一索引的字段相同),我创建的索引如下图,主键索引为自增字段,不可能出现重复,即唯一索引可能会出现 ...
- mysql秒退原因_解决MySql客户端秒退问题(找不到my.ini)
问题说明(环境:windows7,MySql8.0) 今天安装好MySql后启动MySql服务-->启动服务都失败的就不要往下看了,自行百度解决. 打开客户端秒退,但在cmd中是可以使用数据库的 ...
- mysql 57授权失败_MYSQL教程完美解决mysql客户端授权后连接失败的问题
<MYSQL教程完美解决mysql客户端授权后连接失败的问题>要点: 本文介绍了MYSQL教程完美解决mysql客户端授权后连接失败的问题,希望对您有用.如果有疑问,可以联系我们. MYS ...
- 解决mysql不是内部或外部命令
解决mysql不是内部或外部命令 现象 原因 命令中的mysql实际上是一个可执行程序 出现报错的原因是,系统找不到mysql.exe这个程序 解决办法就是 给系统一个目录,让系统可以找到 把mysq ...
- mysql 授权 失败_完美解决mysql客户端授权后连接失败的问题
在本地(192.168.1.152)部署好mysql环境,授权远程客户机192.168.1.%连接本机的mysql,在iptables防火墙也已开通3306端口. 如下: mysql> sele ...
- mysql客户端能运行sql文件_通过mysql客户端执行sql文件的方法
选择要执行sql文件,点击"打开"按钮,如图 方法/步骤 点击"ok"按钮,如图: 下面是学习啦小编为大家整理的关于通过mysql客户端执行sql文件的方法,一 ...
- 解决MySQL删除和插入数据很慢的问题
推荐阅读 Helm3(K8S 资源对象管理工具)视频教程:https://edu.csdn.net/course/detail/32506 Helm3(K8S 资源对象管理工具)博客专栏:https: ...
- mysql不是内部批处理文件怎么解决,mysql不是内部或外部命令也不是可运行的程序或批处理文件...
MySQL集群 MySQL集群 1.MySQL为什么需要集群? 问题:100W的客户端,每3分钟上传一次订单数据,数据库怎么设计? MySQL和MongoDB插入数据比较: MySQL:600/s事务 ...
最新文章
- Mongoose源码剖析:Introduction and Installation
- layui 导航收缩代码_pycharm的十个小技巧,让你写代码效率翻倍
- JAVA并发之多线程基础(5)
- 成功解决torch.cuda.CudaError: CUDA driver version is insufficient for CUDA runtime version (35) [ WARN:0
- loadrunner基础知识问答(转)
- 网易云信,发送验证码短信C#版代码
- 认清SQL_Server_2005的基于行版本控制的两种隔离级别
- 小程序服务器api接口,百度智能小程序API 开放接口
- 14位顶级哲学家对生命的经典感悟!若能领悟受益终生!
- 《计算机应用基础》18春作业,【北语网院】18春《计算机应用基础》作业_4.pdf...
- 我一直在想500年前我是不是孙悟空,但是事实上我却是至尊宝。这就是宿命(capsicum.heorhome.net)
- MySQL(八)事务的隔离级别
- python运维书_python运维书
- FPGA学习笔记-IP核-FIFO
- 功率因数 matlab,matlab功率因数测量
- mysql域是什么_数据库中的“域”是什么?
- 推荐几个不错的黑科技网站
- TienLen游戏模型、算法,类似斗地主游戏算法
- 带你走进缓存世界(1):漫谈缓存
- 数据中台:数据中台技术架构详解
热门文章
- conductor 系统任务
- 魔百盒M304A南传-当贝桌面-免拆卡刷固件包
- “python扩展正在加载”一直在加载或加载python扩展失败
- ofbiz mysql_Ofbiz12.04 进阶之一 如何使ofbiz连接Mysql
- Dev-C++ 如何调试程序
- 统信UOS配置X11VNC服务--基于systemd
- DJL调用目标检测模型检测rtsp视频流
- 展讯平台-LCD驱动
- HarmonyOS开发21:CommonDialog抽取工具类
- c语言趣味程序设计过桥,C语言趣味程序设计——题目百例.doc