1. 程式人生 > >IDEA操作MySQL資料庫亂碼問題解決方案

IDEA操作MySQL資料庫亂碼問題解決方案

博主今天開始寫自己的個人網站的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%';

可以檢視到一些編碼問題MySQL編碼1

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,再次測試,發現不亂碼了!