【笔记】Windows中MySQL无法使用中文数据进行插入ERROR 1136 (21S01): Column count doesn‘t match value count at row 1

在Windows环境下,遇到MySQL插入中文数据时出现ERROR 1136错误。原因是数据库字符集不支持UTF-8。解决方案包括检查并修改my.ini配置文件,确保character_set_client, character_set_database, character_set_server为utf-8,并重启MySQL服务。若已有数据库需转换,可设置数据库字符集为utf-8。" 133215684,19694996,MVCC与间隙锁:并发控制对比,"['Java', '数据库', '并发控制']
摘要由CSDN通过智能技术生成

问题简述

今天遇到了无法使用中文进行插入数据,报错为:ERROR 1136 (21S01): Column count doesn't match value count at row 1

问题原因:是因为workbench下载的MySQL中字符集有一些差异,没有使用万国码(utf-8)

解决方案

先查询一下我们的库字符集

show variables like 'character%';

我们发现有一些没有使用utf-8,最好character_set_client,character_setdatebase,character_set_server这三个属性都是utf-8 

我们在my.ini进行修改,但是我一般都不记路径所以我们查询一下

 show variables like 'datadir%';

找到了之后,随便使用编译器打开,我这里使用的是记事本

搜索以下字段加入相应内容

default-character-set=utf-8

character-set-server=utf-8

之后去任务管理器中将MySQL进程重启一下机器即可


如果以上方法不行,那么我们使用以下方法进行

set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
set character_set_server=utf8;
set character_set_system=utf8;

这里可以保证我们后续建立的数据库为utf-8,那么我们之前创建的如果需要使用的话我们可以将数据库的字符集设置为utf-8

alter table `tablename` convert to character set utf8;

tablename为表名

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

阿雄不会写代码

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值