mysql中文问题绝大多数由编码问题引起,大多数同学都是修改mysql自身配置完成修改。下面整理几种情况
一:客户端连接不能输入中文
二:数据库整体不能插入中文
三:数据库某张表不能插入中文
解决办法:
通用型临时应急解决办法
set nams utf8 ; 或 show variables like ‘%char%’; 将编码不同的修改为utf8;
一:客户端连接不能输入中文
核对字符集设置,查看当前系统/连接软件是否支持对应编码。
(1)linux/dockers下终端直接连接
echo $LANG 或 locale 查看当前编码集
若字符集不支持中文,需修改为系统支持的字符集,utf8系列都支持中文编码
export LANG=en_US.UTF-8 设置系统字符集
(2)连接工具不能输入中文,查看下如xshell类连接工具的 设置->编码 是否是utf8
(3)连接相关配置出错。
show variables like ‘%char%’; 查看 character_set_connection 参数是否为设置的utf8
或打开my.cnf/my.ini查看mysql配置文件
二:数据库整体不能插入中文
修改数据库编码即可 set nams utf8 ;
show variables like ‘%char%’;
三:部分表不能插入中文
打开表结构,查看当前字段的字符集,曾经出现过数据库所有通用型设置都是utf8,但是某个字段的字符集设置被修改了,查了一天。