我是靠谱客的博主 拼搏夏天,最近开发中收集的这篇文章主要介绍mysql在linux终端下无法输入中文,觉得挺不错的,现在分享给大家,希望可以做个参考。

概述

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终端下无法输入中文所遇到的程序开发问题。

如果觉得靠谱客网站的内容还不错,欢迎将靠谱客网站推荐给程序员好友。

本图文内容来源于网友提供,作为学习参考使用,或来自网络收集整理,版权属于原作者所有。
点赞(50)

评论列表共有 0 条评论

立即
投稿
返回
顶部