IDEA操作MySQL数据库乱码问题解决方案

时间:2022-03-22 07:04:15

博主今天开始写自己的个人网站的api接口时,遭遇MySQL数据库乱码问题,以前用的是Windows系统,现在改用Mac,所以花费了不少时间,这里仅对修改进行了一些记录

1、Spring Boot项目是否全部用UTF-8
通过输出可知,Spring Boot 已经默认为UTF-8

2、链接数据库是否指定了编码
以下是配置文件

spring:
datasource:
driver-class-name: com.mysql.jdbc.Driver
url: jdbc:mysql://localhost:3306/myweb?useUnicode=true&characterEncoding=UTF-8

通过配置文件可知,没有问题

3、MySQL建库,建表是否制定了编码
为了解决这个问题,我用了2个数据了工具DataGrip和Navicat,得出的结论是,也没有问题

4、那是什么问题呢?
通过大量搜索,通过

 show variables like '%char%';
OR
show variables like 'character%';

可以查看到一些编码问题IDEA操作MySQL数据库乱码问题解决方案

5、问题找到了,怎么修改呢
网上有我很多资料,大多数说

sudo cp /usr/local/mysql/support-files/my-medium.cnf /etc/my.cnf

意思是说,把my-medium.cnf拷贝一份,重命名为my.cnf
可是我的MySQL是最新的版本,并没有my-medium.cnf

6、怎么办呢
继续搜索,之后的解决方案是,自己创建一个my.cnf

7、填哪些内容呢?

[mysqld]
character-set-server=utf8

[client]
default-character-set=utf8

[mysql]
default-character-set=utf8

由于博主是Mac,这里权限是个问题,后面还会说

8、修改完之后,重启一下MySQL,再来测试运行一下,程序,发现还是不行,但此时终端会有一个小提示:

mysql: [Warning] World-writable config file '/etc/my.cnf' is ignored.

大意是说,/etc/my.cnf被忽略

9、什么意思?
搜索一下,大概知道了,Mac如果是全局的话,为了安全,被忽略

10、怎么办?
将/etc/my.cnf的权限更改为644,即可。
重启MySQL,再次测试,发现不乱码了!