概述
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.gbk、zh_CN.utf8等
echo $LANG #查看系统字符集
export LANG=zh_CN.utf8 #也可以是en_US.utf8
echo $LANG #查看是否修改成功
最后进入mysql查看修改后的字符集:
mysql>show variables like 'char%';
+--------------------------+----------------------------+
| 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 | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)
这就表示可以输入中文了。
完结
--------------------------------------手动分割线---------------------------------------------------------------------
如果修改linux系统字符集为zh_CN.gbk
进入mysql查看修改后的字符集,会显示如下内容:
mysql>show variables like 'char%';
+--------------------------+----------------------------+
| Variable_name | Value |
+--------------------------+----------------------------+
| character_set_client | latin1 |
| character_set_connection | latin1 |
| character_set_database | utf8 |
| character_set_filesystem | binary |
| character_set_results | latin1 |
| character_set_server | utf8 |
| character_set_system | utf8 |
| character_sets_dir | /usr/share/mysql/charsets/ |
+--------------------------+----------------------------+
8 rows in set (0.01 sec)
此时也是会无法输入中文的。
最后
以上就是拼搏夏天为你收集整理的mysql在linux终端下无法输入中文的全部内容,希望文章能够帮你解决mysql在linux终端下无法输入中文所遇到的程序开发问题。
如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。
发表评论 取消回复