☕目录☕
问题的产生
产生的原因
解决问题的办法
一、先确认当前数据库的字符集
二、找到配置文件
三、修改配置文件
四、收尾工作
五、最终结果
可能出现的其他情况
如上所示,但你兴高采烈的敲好以上的SQL语句时,发现全部都成功了;
可是,但你想要 使用插入语句 向学生表 插入中文数据的时候,
却发现出现了错误;
你乍眼一看,
" 咦,我的语法格式是正确的呀,为什么会出现错误? "
再瞅一眼一看,
" 没错啊,和书上的语句是一模一样的啊,为什么还是错误呢? "
我们都知道,数据库在表示中文的时候,需要明确 字符编码(字符集);
MySQL默认的字符集 叫做 拉丁文;
而 拉丁文 是并不支持 中文 的,所以 我们如果想要 MySQL数据库 可以存储中文,
那么 就需要把 已经默认的字符集改成 GBK或者UTF-8等 可以存储中文的字符集。
修改MySQL字符集的办法有很多种,下面就来介绍一种 "一劳永逸" 的办法:即 修改MySQL的配置文件~~
ps:
什么叫做配置文件?
——比如说 在手机上安装了《王者荣耀》这款游戏,结果发现 在玩游戏的过程中 比较卡;
——所以,在设置里面 进行了一些调整:如 改为低画质,调低分辨率 等等;
——然后虽然画质等不好,但是却很流畅,不会在玩的时候卡;
——这些能够进行调整的 设置项 就称为 "配置" 。
那么,类似于 这个游戏,平时在玩的时候,修改配置项的时候,都是直接在游戏界面的时候 进行修改~~
这样做主要是让普通玩家操作起来很方便~~
但是,在编程圈子里面,用到的很多软件,也需要提供很多的配置项~~
由于这些软件都是由 "程序员" 在用~~
所以那些 开发程序的大佬,就没有做简单方便的界面,而是直接把 配置项 放到了一个单独的文件里,按照特定的格式来组织~~
程序员 要想修改配置,就需要需改配置文件~~
如果已经是GBK或者UTF-8了,就不会出现这类错误,修改了也没有什么用~~
咋们就配置成 UFF-8~~
--查看当前数据库的字符集
show variables like 'character%';
需要看 database和 server部分~~
my.ini
(1)可以用 everything 小工具来进行搜索
但是,这个方法不一定靠谱,
也许有的人的电脑上有多个MySQL~~
也就会有多个 my.ini~~
去分不出来要改哪个的~~
(2)原生方法找到配置文件
当然,不要直接复制这个路径 进去(非常特别的不建议,因为没有备份,万一修修改改出错,那就还原不回去了哦):
C:\ProgramData\MySQL\MySQL Server 5.7\my.ini
【注意】这个路径仅根据 属性 中 "目标" 下的路径复制而来,也许每个电脑都不一样,我也不知道的~~
【注意】
修改配置文件之前,一定要先备份!!!
复制粘贴出来一份,放到旁边~~
因为 重大配置的修改,一定要先备份再修改!!!
防止改错了回不去了~~
打开配置文件:
【注意】
(1)#开头的都是注释~~
(2)ini文件中,有一些 [ ] ,每一个 [ ] 称为是一个 selection ,相当于把一组功能有联系的配置放到一起,构成了一个selection;相当于分分类,便于管理~~
(3)[client]是客户端的配置~~[mysql]是客户端和服务器都可能用到的配置~~[mysqld]是服务器用到的配置~~
修改配置文件:
有两个地方需要修改:
具体这里的配置项,是按照键值对的方式来组织的~~
注意这里键值对的单词拼写~~
两侧不要有空格~~
[mysql]
default-character-set=utf8
[mysqld]
character-set-server=utf8
修改完了,记得保存(ctrl+s),
然后就可以退出了~~
修改完配置文件以后,并不是立马生效~~
还是需要做一些额外的工作才可以~~
(1)重启MySQL服务器!
是重启服务器,而不是关闭mysql黑框框(是客户端)~~
重启之后,提示"正在运行",说明是重启成功!!!
如果是其他内容(如 启动中......),说明重启失败!!!
失败的最大原因是 配置文件改错了~~
哪怕是多拼了一个字,多了一个空格啥的都是不行的~~
(2)修改配置文件,对已经创建好的数据库是没有影响的~~
必须要删除旧的数据库,重新建库建表~~
解决该类问题的办法: