IDEA操作MySQL資料庫亂碼問題解決方案
阿新 • • 發佈:2019-01-22
博主今天開始寫自己的個人網站的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%';
可以檢視到一些編碼問題
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,再次測試,發現不亂碼了!