解决MySQL无法输入中文字符的问题

news2024/11/28 0:39:09

在这里插入图片描述

在这里插入图片描述

文章目录

  • 问题描述
  • 问题排查
  • 解决方案
    • 1️⃣创建数据库时设置字符集为utf8
    • 2️⃣修改数据库配置文件【比较麻烦】
  • 写在最后

前几日在使用MySQL数据库的时候,出现了一处保存,故作此记录✍

问题描述

  • 下面是我这样exam表的结构
mysql> desc exam;
+---------+--------------+------+-----+---------+-------+
| Field   | Type         | Null | Key | Default | Extra |
+---------+--------------+------+-----+---------+-------+
| id      | int(11)      | YES  |     | NULL    |       |
| name    | varchar(50)  | YES  |     | NULL    |       |
| chinese | decimal(3,1) | YES  |     | NULL    |       |
| math    | decimal(3,1) | YES  |     | NULL    |       |
| english | decimal(3,1) | YES  |     | NULL    |       |
+---------+--------------+------+-----+---------+-------+
  • 然后我使用insert into语句往这个表中插入了一条记录
mysql> insert into exam values (1, '张三', 78, 89, 93);
  • 但是却报出了下面这样的错误
ERROR 1366 (HY000): Incorrect string value: '\xE5\xBC\xA0\xE4\xB8\x89' for column 'name' at row 1

仔细阅读报错提示后,说是【位于第1行“name”列的字符串值“\xE5\xBC\xA0\xE4\xB8\x89”不正确

问题排查

然后我思考了一下🤔可能是和当前数据库的字符集设置有关系,因为我在插入英文的时候是没有问题的

  • 然后便使用下面这句查看了一下当前我的MySQL的各种编码
show variables like '%character%';
  • 然后一查看就发现我的【character_set_database】数据库字符集为latin1,也就是拉丁文,对于这种字符集来说支持不了中文的
mysql> show variables like '%character%';
+--------------------------+---------------------------------------------------------+
| Variable_name            | Value                                                   |
+--------------------------+---------------------------------------------------------+
| character_set_client     | utf8                                                    |
| character_set_connection | utf8                                                    |
| character_set_database   | latin1                                                    |
| character_set_filesystem | binary                                                  |
| character_set_results    | utf8                                                    |
| character_set_server     | latin1                                                     |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.01 sec)

在这里插入图片描述

解决方案

然后来说一下该如何去解决这个问题,这里提供两种解决方案

1️⃣创建数据库时设置字符集为utf8

create database 数据库名 character set utf8;
  • 例如下面这里,我新创建了一个名为test的数据库,后面跟上character set utf8后,再去查看当前数据库的字符集就是utf8了
mysql> create database test character set utf8;
Query OK, 1 row affected (0.00 sec)

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     | latin1                                                     |
| character_set_system     | utf8                                                    |
| character_sets_dir       | C:\Program Files\MySQL\MySQL Server 5.7\share\charsets\ |
+--------------------------+---------------------------------------------------------+
8 rows in set, 1 warning (0.00 sec)

💬 那有人就会说:这样不是很麻烦吗,每次去创建数据库都要手动指定一下字符集

  • 是的,所以你可以考虑第二种方案,做到一劳永逸

2️⃣修改数据库配置文件【比较麻烦】

什么是配置文件?

  • 用户配置文件就是在用户登录电脑时,或是用户在使用软件时,软件系统为用户所要加载所需环境的设置和文件的集合
  • 很多程序,内部支持多种“模式”,可以调整当前程序,让他应用那种模式。 因此就可以借助“开关”来切换模式!软件的开关通常会用一个“图形化界面”,但是对于 MySQL 等专用软件则一般没有对应的图形化界面表示开关。只是通过一个【专门的文件】,来保存这些开关。这个文件就是 “配置文件”

① 而对于MySQL的配置文件就叫做my.ini,我们可以通过【Everything】这个搜索工具来进行查找

在这里插入图片描述
② 打开路径后我们就看到了这个文件,当然你也可以直接在C盘的MySQL安装位置中招(MySQL默认安在C盘)

⚠注意看我下面的两个备份文件,在修改重要的配置文件前要先进行备份

在这里插入图片描述

③ 然后我们就可以通过记事本等方式去打开这个配置文件

在这里插入图片描述

④ 接下去找到这两个地方,把前面的# + 空格去掉,并且在=后面加上utf8【注意这里一点空格也不要加!!!】

在这里插入图片描述

⑤ 在上面修改完配置文件,Ctrl + s后,找自己的电脑中找到【服务】,然后往下拉找到有关MySQL的,它便是你的MySQL服务器,重启一下即可

⚠注意在重启前要保证配置文件修改正确,否则MySQL会启动失败的

在这里插入图片描述
⑥ 接下去就可以再次启动MySQL创建一个新的数据库去看看我们的数据库默认字符集是否改成utf8了

⚠注意之前创建的那个数据库要删掉,因为其默认的字符集就是[latin1]

在这里插入图片描述

⑦ 然后我们再试一下去插入一条带有中文字符的记录,就发现没问题了( •̀ ω •́ )y

mysql> insert into exam values (1, '李四', 79, 82, 92);
Query OK, 1 row affected (0.00 sec)

写在最后

再看完了上面的这些内容后,我们来聊聊有关MySQL报错的问题

  • 如果你使用过MySQL的话,就可以知道我们在初学CRUD的时候,会出现很多的报错,于是很多同学面对英文的报错就不知道该如何是好,就懒得学习了,这其实是不对的
  • 如果英语基础不太好的同学可以把报错的提示放在翻译软件中去进行查看,若是能看懂的话最好,如果看不懂的话可以去百度/CSDN搜搜看看,学会去发现问题、排查问题,最后解决问题

本文完,2023年5月21日

在这里插入图片描述

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.coloradmin.cn/o/551028.html

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

PETR 论文学习

1. 解决了什么问题? DETR3D 为端到端的 3D 目标检测提供了一个思路。但是,DETR3D 中的 2D 到 3D 的变换会带来一些问题。 Reference point 的预测坐标可能不够准确,采样特征可能位于目标区域之外;只有映射点周围的特征会被选取&…

“超越极限 - 如何使用 Netty 高效处理大型数据?“ - 掌握 Netty 技巧,轻松应对海量数据处理!

1 写大型数据 因为网络饱和的可能性,如何在异步框架中高效地写大块的数据是特殊问题。由于写操作是非阻塞的,所以即使没有写出所有的数据,写操作也会在完成时返回并通知 ChannelFuture。当这种情况发生时,如果仍然不停地写入&…

2023年最受欢迎的低代码平台排行榜

随着企业寻找在降低成本的同时加快软件开发的方法,低代码开发平台正变得越来越受欢迎。这些平台允许开发人员使用拖放界面和预置组件,以最少的代码创建复杂的应用程序。它不仅帮助企业加快了数字化转型的脚步,而且打破业务部门和IT部门之间的…

多元分类预测 | Matlab萤火虫算法(FA)优化BP神经网络分类预测,FA-BP分类预测,多特征输入模型

文章目录 效果一览文章概述部分源码参考资料效果一览 文章概述 多元分类预测 | Matlab萤火虫算法(FA)优化BP神经网络分类预测,FA-BP分类预测,多特征输入模型,多特征输入模型,多特征输入模型,多特征输入模型,多特征输入模型,多特征输入模型 多特征输入单输出的二分类及多…

商品领域十二张基础表设计思路与实现

欢迎大家关注公众号「JAVA前线」查看更多精彩分享文章,主要包括源码分析、实际应用、架构思维、职场分享、产品思考等等,同时欢迎大家加我微信「java_front」一起交流学习 1 文章概述 商品在电商领域中是一个非常重要的领域,交易行为前提是有…

Selenium + Java 的环境搭建

Selenium Java 的环境搭建 🔎Chrome 浏览器下载 Chrome 浏览器检查对应版本下载 Chrome 浏览器驱动 🔎配置环境变量🔎验证环境是否搭建成功🔎关于 pom.xml 出现错误的解决方案 🔎Chrome 浏览器 下载 Chrome 浏览器 下…

使用命令启动默认程序(例如启动系统默认浏览器打开指定网址)

文章目录 目的基础说明代码示例(Golang)总结 目的 通过命令调用系统默认应用程序打开对应格式的文件是比较常用的功能。这篇文章将介绍下相关内容。 基础说明 Windows windows下可以使用 start 指令来启动默认程序打开对应格式文件; 比如 …

iptables中SNAT、DNAT及iptables服务启动时会自动还原规则

目录 SNAT原理与应用​编辑 SNAT转换前提条件 临时打开: 永久打开: 示例​编辑 DNAT原理与应用​编辑 DNAT转换前提条件 示例​编辑 防火墙规则的备份和还原 导出(备份)所有表的规则 清空规则​编辑 导入(还…

【VMware】Ubunt 20.04时间设置

文章目录 设置本地时间 UTC8设置24小时制同步网络时间参考 Talk is cheap, show me the code. 设置本地时间 UTC8 查看当前时区状态 rootnode1:~/k8s# timedatectlLocal time: Sun 2023-05-21 15:24:02 CSTUniversal time: Sun 2023-05-21 07:24:02 UTCRTC time: Sun 2023-05-2…

计算机网络知识汇总(十万字超详细)

文章目录 1 计算机网络概述1.1 概念、组成、功能和分类1.2 标准化工作及相关组织1.3 速率相关的性能指标1.4 时延、时延带宽积、往返时间RTT、利用率1.5 分层结构、接口、协议、服务1.6 OSI参考模型1.7 TCP/IP与五层参考模型1.8 第一章知识大纲 2.物理层2.1 物理层基本概念2.2 …

GaussDB(for MySQL)云原生数据库技术演进和挑战

摘要:GaussDB(for MySQL)是华为自研云原生数据库,具有高性能,高扩展,高可靠的特点,完全兼容MySQL协议,自研架构和友好的生态兼容性,可以同时满足数据库管理员、应用开发者、CTO的运维、使用和业…

QT5.14.2下载安装与环境配置

1.QT5.14.2的下载 QT5.14.2的官方下载地址为 https://download.qt.io/archive/qt/5.14/5.14.2/ ![在这里插入图片描述](https://img-blog.csdnimg.cn/9ef2a92414cb48a482d3cde4dd19a9ac.png 由于exe文件名称只有x86,只能选择这个下载,但是在安装时可以选…

ChatGPT也能助力建筑设计,这么智能?

ChatGPT也称为 Generative Pre-trained Transformer,是一种强大的语言生成工具,具有生成类人文本的能力。这项技术有可能通过为建筑师提供与客户、承包商和其他利益相关者沟通和协作的新方式来彻底改变建筑行业。在这篇文章中,我们将探讨架构…

css学习-内容加载占位动画(渐变动画)

文章目录 学习链接纯CSS渐变动画结合vue指令简单使用 学习链接 Git Hub前端50天50个项目 | 第24 内容文本 纯CSS渐变动画 <style lang"scss" scoped> .card-wrapper {width: 100%;height: 100%;display: flex;align-items: center;justify-content: center; …

tinymce富文本编辑器使用到二开

tinymce tinymce 一款现代化的富文本编辑器&#xff0c;有专门团队维护&#xff0c;是目前主流的富文本编辑器选择。 安装注意事项&#xff1a; 有两种方案分别是安装对应的vue/react组件&#xff0c;然后直接用组件&#xff0c;或者直接使用tinymce去按原生操作会报找不到文…

HTML- 标签学习之- 列表、表格

无序列表/有序列表&#xff1a; 标签组成( 无序ul 有序 ol ) -> li 父子级标签&#xff0c; ul只能包含li标签&#xff0c; li标签可以包含任意内容。 自定义列表 dl :自定义列表的整体&#xff0c;用于包裹dt/dd 标签dt:自定义列表主题dd:自定义列表的针对主题的…

【VMware】VM安装虚拟机

文章目录 VMware教程创建新的虚拟机自定义安装选择稍后安装操作系统这里选择Linux操作系统&#xff0c;版本为Centos7 64位选择名称和安装位置选择处理器、内核数量&#xff08;可根据电脑硬件以及需求进行调整&#xff09;选择2G内存&#xff08;可根据电脑硬件以及需求进行调…

计算机视觉 day94 DDH - YOLOv5:基于双IoU感知解耦头改进的YOLOv5,用于对象检测

DDH - YOLOv5:基于双IoU感知解耦头改进的YOLOv5&#xff0c;用于对象检测 I. IntroductionII. Related workPrediction head 预测头 III. Methodology3.1 Decoupled Head3.2 Double IoU‑aware3.3 Training3.4 Inference IV. Experiments4.1 与YOLOv5等检测头对PASCAL VOC2007测…

Netty实战(五)

ByteBuf—Netty的数据容器 一、什么是ByteBuf二、 ByteBuf 的 API三、ByteBuf 类——Netty 的数据容器3.1 ByteBuf如何工作&#xff1f;3.2 ByteBuf 的使用模式3.2.1 堆缓冲区3.2.2 直接缓冲区3.2.3 复合缓冲区 四、字节级操作4.1 随机访问索引4.2 顺序访问索引4.3 可丢弃字节4…

使用Docker部署Jenkins

Jenkins是一款开源的持续集成&#xff08;DI&#xff09;工具&#xff0c;广泛用于项目开发&#xff0c;能提供自动构建&#xff0c;测试&#xff0c;部署等功能。 文章目录 1、安装2、配置镜像加速3、登录初始化Jenkins4、配置Jenkins 1、安装 接下来使用Docker部署Jenkins&a…