mysql版本是mysql5.7,系统环境是ubuntu18。版本影响不大。
问题描述:
在一般终端下可以输入中文,但是进入mysql终端,就无法输入中文。
问题原因:
很多人在百度搜索修改mysql字符集的时候,会在配置文件中加入以下内容:
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
[client]
default-character-set=utf8
[mysql]
default-character-set=utf8
其中[mysqld]、[client]、[mysql]代表的作用域,在本作用域下配置的变量只会在本作用域下生效。[mysqld]作用域表示mysql服务器,[mysql]表示的本机客户端,[client]表示本机客户端和远程客户端。
在上述配置中,在[client]、[mysql]下一起配置了default-character-set=utf8,但是linux系统本身的字符集不是utf8,这就导致了矛盾,所以最后呈现出来的就是无法输入中文。
解决方法:
在配置文件中,只需要修改[mysqld]域下的变量,如下所示
[mysqld]
character-set-server=utf8
collation-server=utf8_general_ci
然后修改以下linux系统本身的字符集:
linux常用字符集:en_US.utf8、zh_CN.gb2312、zh_CN