文章目录 问题描述问题排查解决方案1️⃣创建数据库时设置字符集为utf82️⃣修改数据库配置文件【比较麻烦】 写在最后 前几日在使用Mysql数据库的时候,出现了一处保存,故作此记录✍ 问题描述 下面是我这样exa
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”不正确】
然后我思考了一下🤔可能是和当前数据库的字符集设置有关系,因为我在插入英文的时候是没有问题的
show variables like '%character%';
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)
然后来说一下该如何去解决这个问题,这里提供两种解决方案
create database 数据库名 character set utf8;
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)
💬 那有人就会说:这样不是很麻烦吗,每次去创建数据库都要手动指定一下字符集
什么是配置文件?
① 而对于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报错的问题
本文完,2023年5月21日
来源地址:https://blog.csdn.net/Fire_Cloud_1/article/details/130789834
--结束END--
本文标题: 解决MySQL无法输入中文字符的问题
本文链接: https://www.lsjlt.com/news/371653.html(转载时请注明来源链接)
有问题或投稿请发送至: 邮箱/279061341@qq.com QQ/279061341
下载Word文档到电脑,方便收藏和打印~
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-12
2024-05-11
2024-05-11
2024-05-11
回答
回答
回答
回答
回答
回答
回答
回答
回答
回答
0