【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题

☕目录☕

  问题的产生

  产生的原因

  解决问题的办法

              一、先确认当前数据库的字符集

              二、找到配置文件

              三、修改配置文件

              四、收尾工作

              五、最终结果

  可能出现的其他情况


问题的产生

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第1张图片

如上所示,但你兴高采烈的敲好以上的SQL语句时,发现全部都成功了;

可是,但你想要 使用插入语句 向学生表 插入中文数据的时候,

却发现出现了错误;

你乍眼一看,

" 咦,我的语法格式是正确的呀,为什么会出现错误? "

再瞅一眼一看,

" 没错啊,和书上的语句是一模一样的啊,为什么还是错误呢? "


产生的原因

我们都知道,数据库在表示中文的时候,需要明确 字符编码(字符集);

MySQL默认的字符集 叫做 拉丁文;

而 拉丁文 是并不支持 中文 的,所以 我们如果想要 MySQL数据库 可以存储中文,

那么 就需要把 已经默认的字符集改成 GBK或者UTF-8等 可以存储中文的字符集。


解决问题的办法

修改MySQL字符集的办法有很多种,下面就来介绍一种 "一劳永逸" 的办法:即 修改MySQL的配置文件~~

ps:

什么叫做配置文件?

——比如说 在手机上安装了《王者荣耀》这款游戏,结果发现 在玩游戏的过程中 比较卡;

——所以,在设置里面 进行了一些调整:如 改为低画质,调低分辨率 等等;

——然后虽然画质等不好,但是却很流畅,不会在玩的时候卡;

——这些能够进行调整的 设置项 就称为 "配置" 。

那么,类似于 这个游戏,平时在玩的时候,修改配置项的时候,都是直接在游戏界面的时候 进行修改~~

这样做主要是让普通玩家操作起来很方便~~

但是,在编程圈子里面,用到的很多软件,也需要提供很多的配置项~~

由于这些软件都是由 "程序员" 在用~~

所以那些 开发程序的大佬,就没有做简单方便的界面,而是直接把 配置项 放到了一个单独的文件里,按照特定的格式来组织~~

程序员 要想修改配置,就需要需改配置文件~~ 


一、先确认当前数据库的字符集

如果已经是GBK或者UTF-8了,就不会出现这类错误,修改了也没有什么用~~

咋们就配置成 UFF-8~~

--查看当前数据库的字符集
show variables like 'character%';

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第2张图片

 需要看 database和 server部分~~


二、找到配置文件

my.ini

(1)可以用 everything 小工具来进行搜索

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第3张图片

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第4张图片

但是,这个方法不一定靠谱,

也许有的人的电脑上有多个MySQL~~

也就会有多个 my.ini~~

去分不出来要改哪个的~~

(2)原生方法找到配置文件

  1. 找到快捷方式的文件位置~~
  2. 右键 —>属性 —>可以看见 "目标"~~
  3. 把"目标"里面的内容拷贝出来,这是MySQL的可执行程序路径和配置文件路径~~
  4. 把 配置文件路径 复制过来,在进行粘贴查询,找到配置文件 my.ini(当然,需要把扩展名显示)~~

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第5张图片

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第6张图片

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第7张图片

当然,不要直接复制这个路径 进去(非常特别的不建议,因为没有备份,万一修修改改出错,那就还原不回去了哦):

C:\ProgramData\MySQL\MySQL Server 5.7\my.ini

【注意】这个路径仅根据 属性 中 "目标" 下的路径复制而来,也许每个电脑都不一样,我也不知道的~~


三、修改配置文件

【注意】

修改配置文件之前,一定要先备份!!!

复制粘贴出来一份,放到旁边~~

因为 重大配置的修改,一定要先备份再修改!!!

防止改错了回不去了~~

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第8张图片

打开配置文件:

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第9张图片

【注意】

(1)#开头的都是注释~~

(2)ini文件中,有一些 [ ] ,每一个 [ ] 称为是一个 selection ,相当于把一组功能有联系的配置放到一起,构成了一个selection;相当于分分类,便于管理~~

(3)[client]是客户端的配置~~[mysql]是客户端和服务器都可能用到的配置~~[mysqld]是服务器用到的配置~~ 

修改配置文件:

有两个地方需要修改:

具体这里的配置项,是按照键值对的方式来组织的~~

注意这里键值对的单词拼写~~

两侧不要有空格~~

[mysql]

default-character-set=utf8

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第10张图片

[mysqld] 

character-set-server=utf8

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第11张图片

修改完了,记得保存(ctrl+s),

然后就可以退出了~~


四、收尾工作

修改完配置文件以后,并不是立马生效~~

还是需要做一些额外的工作才可以~~

(1)重启MySQL服务器!

是重启服务器,而不是关闭mysql黑框框(是客户端)~~

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第12张图片

重启之后,提示"正在运行",说明是重启成功!!!

如果是其他内容(如 启动中......),说明重启失败!!!

失败的最大原因是 配置文件改错了~~

哪怕是多拼了一个字,多了一个空格啥的都是不行的~~

(2)修改配置文件,对已经创建好的数据库是没有影响的~~

必须要删除旧的数据库,重新建库建表~~


五、最终结果

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第13张图片


可能出现的其他情况

【MySQL系列】“一劳永逸”解决MySQL中“插入中文数据”出错的问题_第14张图片

解决该类问题的办法:

  1. 先把 my.ini 拷贝到桌面上~~
  2. 修改~~
  3. 改完以后再拷贝回去,覆盖原来的文件(会提示按管理员权限操作,点继续就可以了)~~ 

你可能感兴趣的:(MySQL数据库,MySQL数据库)