问题描述: 新建不久的项目在使用Navicat for MySQL进行查看数据,发现表中注释的部分乱码,但是项目中获取的数据使用不会。
猜测因为是数据库编码和项目中使用的不一样,又因为项目的连接语句定义了需要编码,故项目运行获取的数据不会乱码。
datasource:
# MySQL8
driver-class-name: com.mysql.cj.jdbc.Driver
url: jdbc:mysql://localhost:3306/xxboot?useUnicode=true&characterEncoding=UTF-8&serverTimezone=Asia/Shanghai&nullCatalogMeansCurrent=true
错误的过程 可不看
cmd进入命令提示符界面查看本地MySQL
'mysql' 不是内部或外部命令,也不是可运行的程序
MySQL 安装目录的 bin 目录下把mysql.exe所在的目录,添加到环境变量
set PATH=C:,关闭DOS窗口。 (不用重启)环境变量里PATH已经在Windows全局生效了。
mysql -uroot -p
进去后查看数据库与服务端的字符集设置
show variables like '%char%';
修改mysql配置文件my.ini 或者是 /etc/my.cnf。 (Windows zip安装的可以在ProgramData下寻找my.ini文件, 就是上图中character_sets_dir 的位置)
default-character-set=utf8 不生效???
加入一句
skip-character-set-client-handshake=1 跳过mysql程序起动时的字符参数设置 ,使用服务器端字符集设置
任务管理器-- 服务 找到 MySQL服务 点击重新启动
MySQL配置生效了
MySQL配置生效了, 建表后注释中文乱码 怎么回事?
我在idea查看 建表的注释没有问题,用自带的连接工具查看注释也是正常。
Navicat for MySQL(v10.1.7)中,表数据中文正常,只有字段注释中文乱码
猜测大概是我的Navicat for MySQL版本太旧了,4年没更新了
更新版本吧,感觉是低版本问题。10.17变成11.1.3版本,问题解决。