一、mysql出現亂碼問題:
出現的問題是下圖這樣的亂碼問題,我是使用java在做練習的時候發現出現字符集編碼問題的:

當時是使用jdbc來添加的數據,我的jdbc包括web前端后端的編碼都是設置的是utf-8的編碼,所以問題只能是mysql自己的編碼問題。
上面中的這個圖片中有一個是沒有出現亂碼的,這個是我在mysql的終端中自己用命令手動添加的,所以沒有出現亂碼。這個懷疑是jdbc連接的時候出現的亂碼問題!
二、發現問題
通過下面的命令來感受一下,到底是什么地方不對,這是查看mysql中各種服務的編碼問題(因為建表的時候就已經指定了數據庫的編碼,所以我覺得是沒有問題的,只能是mysql自己的問題)
show variables like 'character%';

這個是我的默認的mysql的字符編碼,我們看見character_set_server的字符編碼是latin1,我估計就是這個造成的,因為我的是設置過的,默認的character_set_database也是latin1的編碼格式,所以我們要解決這個問題。
三、解決問題
3.1 通過修改臨時的編碼解決(治標不治本的辦法)
設置上面的集中編碼格式
一個一個設置
set character_set_client=utf8;
就是上面這個命令,把character_set_client這個換成想要更改的就好了。
簡單介紹下:
character_set_client:客戶端字符集
character_set_connection:鏈接字符集
character_set_database:數據庫字符集
character_set_filesystem:文件系統
character_set_results:結果字符集
character_set_server:服務器字符集
character_set_system:mysql系統字符集
如果上面這種辦法麻煩,可以使用
set names utf8;
這個命令同時將客戶端字符集,鏈接字符集,結果字符集設置成utf8的字符編碼。
但是上面這種辦法當mysql下次登錄的時候還會變成原來的默認設置,只是暫時的改變當前的字符編碼!
3.2 設置mysql配置文件
在mac上默認是沒有配置文件的,需要到/usr/local/mysql/support-files目錄下將mac上的mysql配置文件模板my-default.cnf拷貝到/etc下,並將文件名改成my.cnf
在my.cnf中找到[client][mysqld]分別添加下面兩句話
[client]
default-character-set=utf8
[mysqld]
character-set-server=utf8
然后將mysql重新啟動:

設置了之后重新啟動后mysql的字符編碼問題就可以得到解決!
記錄學習的每一步,記錄每一次的成長!!!!
