MySQL插入不了中文数据问题的原因及解决
来源:脚本之家
时间:2023-05-12 16:23:02 454浏览 收藏
欢迎各位小伙伴来到golang学习网,相聚于此都是缘哈哈哈!今天我给大家带来《MySQL插入不了中文数据问题的原因及解决》,这篇文章主要讲到插入、mysql中文等等知识,如果你对数据库相关的知识非常感兴趣或者正在自学,都可以关注我,我会持续更新相关文章!当然,有什么建议也欢迎在评论留言提出!一起学习!
报错:非法的字符值 放入 ‘name’ 为什么不能存入中文呢?
原因:
对于当前数据库 来说,内部存储中文是需要指定对应的中文编码方式!
而数据库默认的字符集,是“拉丁文”,不能存中文。
我们在控制台输入,下面这行命令,查看数据库字符集。
show variables like '%char%';
我们看 character_set_database 这一行对应 Value的是 latinl,而 latinl 是拉丁文,是不支持中文的。
现在我们知道数据库为什么不能存储中文了,那应该怎么做才能让数据库插入中文呢?我们接着往下看
具体解决方法:
我主要介绍两种方法,一种简单的,一个比较复杂,但其本质上是在修改 数据库 字符编码
创建数据库时设置字符集为utf8
我们在创建数据库时设置支持中文字符集utf8,如下
create database 数据库名 character set utf8;
设置完后,我们就能想改数据库中插入中文啦。
我们再查看该数据库时,我们会发现我们设置数据库字符集改变了,但是当我们使用其他数据库时,其字符集还是 latinl。
这种方法,虽然简单但是每次都需要手动设置,那有没有一种方法能一劳永逸。
我们看方法二。
修改数据库配置文件(比较麻烦)
我们可以修改MySQL的配置文件,把其字符集修改为utf8,这样再创建数据库就不用手动设置啦。
什么是配置文件:
很多程序,内部支持多种“模式”,可以调整当前程序,让他应用那种模式。
因此就可以借助“开关”来切换模式!软件的开关通常会用一个“图形化界面”,但是对于 MySQL 等👩💻程序猿👨💻专用软件则一般没有对应的图形化界面表示开关。只是通过一个专门的文件,来保存这些开关。这个文件就是 “配置文件”。
因此程序猿如果要调整这些开关,就要手动修改这个文件。
1、找到MySQL的配置文件
每个人电脑上的配置文件路径不一样,我们可以‘服务’来找到其对于的路径
然后在服务中,找到MySQL,在常规中找到可执行文件路径,复制下来。
大家可以像我一样,把路径复制下来放到画图中方便查看。如下图,画红线的就是MySQL配置文件路径,接着我们根据路径去查找配置文件
在查找过程中 大家肯能找不到 ProgramData 文件,一般这个文件都是隐藏起来的,我们点击显示隐藏项目就会出现。
2、修改文件
找到 后缀为 .ini 文件后,我们可以记事本打开编辑。
注意:
大家在进行编辑之前,一定要先备份!!!
这样的文件非常关键,一旦改错了,mysql 就启动不了了!!
如何备份:我们直接选中文件,赋值粘贴即可。
首先在文件中找到[mysql],在下面添加下面 default-character-set=utf8
注意:=两侧不要有空格
然后找到[mysqld],把 下图话红框的地方改成 character-set-server=utf8 ,改好后退出保存
3、重启MySQL服务器(重要)
MySQL是一个客户端服务器程序,我们要重启MySQL服务器。我们在服务中找到MySQL之后,右键点击重启。重启后MySQL显示‘正在运行’,即重启成功!
注意:重启的是MySQL服务器,不是MySQL客户端
如果启动失败,可能是配置文件出错,大家可以回去检测一下是不是有拼写错误或空格多打的情况
到这里就配置成功了,我们可以去尝试建库插入中文试试
刚才该的配置,影响的是新的库。旧的库,仍然是之前的编码!!! 一定要记得删库,重新建库
总结
今天关于《MySQL插入不了中文数据问题的原因及解决》的内容介绍就到此结束,如果有什么疑问或者建议,可以在golang学习网公众号下多多回复交流;文中若有不正之处,也希望回复留言以告知!
-
324 收藏
-
341 收藏
-
392 收藏
-
232 收藏
-
359 收藏
-
335 收藏
-
467 收藏
-
303 收藏
-
176 收藏
-
368 收藏
-
475 收藏
-
- 前端进阶之JavaScript设计模式
- 设计模式是开发人员在软件开发过程中面临一般问题时的解决方案,代表了最佳的实践。本课程的主打内容包括JS常见设计模式以及具体应用场景,打造一站式知识长龙服务,适合有JS基础的同学学习。
- 立即学习 542次学习
-
- GO语言核心编程课程
- 本课程采用真实案例,全面具体可落地,从理论到实践,一步一步将GO核心编程技术、编程思想、底层实现融会贯通,使学习者贴近时代脉搏,做IT互联网时代的弄潮儿。
- 立即学习 507次学习
-
- 简单聊聊mysql8与网络通信
- 如有问题加微信:Le-studyg;在课程中,我们将首先介绍MySQL8的新特性,包括性能优化、安全增强、新数据类型等,帮助学生快速熟悉MySQL8的最新功能。接着,我们将深入解析MySQL的网络通信机制,包括协议、连接管理、数据传输等,让
- 立即学习 497次学习
-
- JavaScript正则表达式基础与实战
- 在任何一门编程语言中,正则表达式,都是一项重要的知识,它提供了高效的字符串匹配与捕获机制,可以极大的简化程序设计。
- 立即学习 487次学习
-
- 从零制作响应式网站—Grid布局
- 本系列教程将展示从零制作一个假想的网络科技公司官网,分为导航,轮播,关于我们,成功案例,服务流程,团队介绍,数据部分,公司动态,底部信息等内容区块。网站整体采用CSSGrid布局,支持响应式,有流畅过渡和展现动画。
- 立即学习 484次学习