上次布署完成群辉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读取数据时会报编码异常。