免费注册 查看新帖 |

Chinaunix

  平台 论坛 博客 文库
最近访问板块 发新帖
查看: 10899 | 回复: 4
打印 上一主题 下一主题

mysql终端不能输入中文 [复制链接]

论坛徽章:
0
跳转到指定楼层
1 [收藏(0)] [报告]
发表于 2012-06-01 15:45 |只看该作者 |倒序浏览
本帖最后由 mpstat 于 2012-06-01 16:00 编辑

现在有两台机器,A,B
A上有mysql
当A的locale设置成en_US的话,如果从A上登陆本地mysql,则终端输入中文的时候,显示的是乱码.
如果改变A的locale为任何一个其它值,我试了很多,比如export LC_ALL='zh_CN.utf8'如果从A上登陆本地mysql,则终端输入中文的时候没有显示任何东西.就跟没反应一样

但从机器B上登陆A的mysql,就能正常.B的locale也是en_US

两个终端都是UTF8.A的数据库的所有charset都是默认的latin1.新装的还没有动过

刚才看了一下,好像和终端的版本有关系
A的mysql终端:
mysql> status
--------------
mysql  Ver 14.12 Distrib 5.0.45, for unknown-linux-gnu (x86_64) using  EditLine wrapper
B的mysql终端
mysql> status
--------------
mysql  Ver 14.7 Distrib 4.1.20, for redhat-linux-gnu (x86_64) using readline 4.3

求解,这是什么原理

论坛徽章:
0
2 [报告]
发表于 2012-06-01 16:33 |只看该作者
解决了问题.但不知道是什么原因

我重新编译了mysql,configure的时候加上readline的选项.把终端编译成readline的版本就可以了
很奇怪为啥editline这玩意不能输中文,还是要设置个啥.搞不懂
现在的状态是这样的

mysql> status
--------------
mysql  Ver 14.12 Distrib 5.0.45, for unknown-linux-gnu (x86_64) using readline 5.0

论坛徽章:
2
2015年迎新春徽章
日期:2015-03-04 09:55:28IT运维版块每日发帖之星
日期:2016-07-29 06:20:00
3 [报告]
发表于 2012-06-04 16:34 |只看该作者
回复 2# mpstat

通过 readline,可以方便的在命令行上面移动,增删,复制,粘贴,搜索

readline是方便命令书写与编辑的,还没有遇到与字符集相关的问题.
建议楼主看一下mysql的字符集设置
  1. show variables like 'char%';
复制代码
– character_set_server:默认的内部操作字符集
– character_set_client:客户端来源数据使用的字符集
– character_set_connection:连接层字符集
– character_set_results:查询结果字符集
– character_set_database:当前选中数据库的默认字符集
– character_set_system:系统元数据(字段名等)字符集


   

论坛徽章:
9
每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00每日论坛发贴之星
日期:2016-01-04 06:20:00数据库技术版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00IT运维版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00综合交流区版块每日发帖之星
日期:2016-01-04 06:20:00数据库技术版块每周发帖之星
日期:2016-03-07 16:30:25
4 [报告]
发表于 2012-06-04 19:19 |只看该作者
本帖最后由 cenalulu 于 2012-06-04 19:20 编辑

回复 1# mpstat


    由于终端输入中文不涉及将命令发到server端,所以和mysql的字符集没有关系,这个先要明确。
其次终端对于中文的响应由2个因素决定
  • linux的LC_LOCALE 变量
  • 终端(cmd,SecureCRT等)支持的字体类型有关

所以要能正常显示中文其实就是统一这两者的字符集。例如 LC_ALL=zh_cn.UTF8 且终端支持UTF8中文字体。

论坛徽章:
0
5 [报告]
发表于 2015-08-14 15:21 |只看该作者
设置了 LC_LOCALE 和 LC_ALL 为 zh_CN.UTF-8 mysql 里还是无法输入中文,显示是输入状态
电脑是OS X yosemite
您需要登录后才可以回帖 登录 | 注册

本版积分规则 发表回复

  

北京盛拓优讯信息技术有限公司. 版权所有 京ICP备16024965号-6 北京市公安局海淀分局网监中心备案编号:11010802020122 niuxiaotong@pcpop.com 17352615567
未成年举报专区
中国互联网协会会员  联系我们:huangweiwei@itpub.net
感谢所有关心和支持过ChinaUnix的朋友们 转载本站内容请注明原作者名及出处

清除 Cookies - ChinaUnix - Archiver - WAP - TOP