问题简述
今天遇到了无法使用中文进行插入数据,报错为: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为表名