群辉docker mysql 中文数据出现乱码和问号解决方案

上次布署完成群辉docker的mysql双主同步后(https://blog.csdn.net/mr_zql/article/details/94902432 ),一时没注意到这个问题。直到今天使用Navicat_Premium查询数据时才发现中文出现了乱码。原因是建库时使用了默认的latin1编码,即(ISO-8859-1)。下面附上解决方案:
首先进入mysql容器的终端机,新增一个终端,然后输入命令vim etc/mysql/mysql.cnf进入到配置文件进行修改。
在这里插入图片描述
打开文件后,开启编辑模式,添加以下内容

[client]
default-character-set=utf8  

## 这两句放在[mysqld]下
character-set-server=utf8 
collation-server=utf8_general_ci

在这里插入图片描述

[client]节点下添加
default-character-set=utf8
(有的版本不支持default-character-set=utf8,用character_set_server=utf8来取代 default-character-set=utf8即可)
[mysqld]节点下添加
character-set-server=utf8
collation-server=utf8_general_ci
(这个是服务器端编码的配置,注:collation是排序方式)

修改完成记得重启service,service mysql restart
在这里插入图片描述

重启完成,就可以进行mysql查询默认编码。
在这里插入图片描述
这是之前未修改的
在这里插入图片描述
注意,如之前建表时未对表和列的编码进行设置编码的,需要更新表和列的编码,否则jdbc读取数据时会报编码异常。

发布了55 篇原创文章 · 获赞 25 · 访问量 1万+

猜你喜欢

转载自blog.csdn.net/mr_zql/article/details/98359431