命令行mysql 中文乱码解决
现象在IDEA中查询,中文显示正常。IDEA中的jdbc连接字符串是:jdbc:mysql://172.16.184.13:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8但是
·
现象
在IDEA中查询,中文显示正常。IDEA中的jdbc连接字符串是:
jdbc:mysql://172.16.184.13:3306/ry-vue?useUnicode=true&characterEncoding=utf8&zeroDateTimeBehavior=convertToNull&useSSL=true&serverTimezone=GMT%2B8
但是在命令行中查询则出现中文乱码问题:
select user_name,nick_name,sex from sys_user;
原因分析
查询编码格式
show variables like'%char%';
数据库设置的是utf8格式的,但是命令行mysql查的是latin1格式的,所以导致乱码问题的出现。
解决办法
更改results编码格式
set character_set_results=utf8;
这样问题就解决了。
上面一行就能解决查询乱码的问题了。
为了保险起见,可以把其他的也设置成utf8
set character_set_client=utf8;
set character_set_connection=utf8;
set character_set_database=utf8;
set character_set_results=utf8;
设置完成以后编辑格式就是如下:
然后我执行了update语句,中文的字段更新也正常了。
永久解决
如果每次都手动执行set character_set_results=utf8;
解决乱码问题,太麻烦了。关键是有时会忘记,有一次导数据忘记了,导致插入了好多中文乱码的数据,很麻烦。
解决办法很简单:
在你的电脑(客户端)以下配置文件中~/.my.cnf
加入如下内容:
[mysql]
default-character-set=utf8
这样下次运行就不用手动设置编码格式了,直接可以使用。
参考
《MySQL命令行查询乱码解决方法》
https://www.cnblogs.com/aksir/p/7070493.html
更多推荐
已为社区贡献1条内容
所有评论(0)