mac上mysql亂碼問題解決

1、mysql出現亂碼問題:

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

當時是使用jdbc來添加的數據,個人jdbc包括web前端後端的編碼都是設置的是utf-8的編碼,因此問題只能是mysql本身的編碼問題。java

上面中的這個圖片中有一個是沒有出現亂碼的,這個是我在mysql的終端中本身用命令手動添加的,因此沒有出現亂碼。這個懷疑是jdbc鏈接的時候出現的亂碼問題!mysql

2、發現問題

經過下面的命令來感覺一下,究竟是什麼地方不對,這是查看mysql中各類服務的編碼問題(由於建表的時候就已經指定了數據庫的編碼,因此我以爲是沒有問題的,只能是mysql本身的問題)web

show variables like 'character%';

這個是個人默認的mysql的字符編碼,咱們看見character_set_server的字符編碼是latin1,我估計就是這個形成的,由於個人是設置過的,默認的character_set_database也是latin1的編碼格式,因此咱們要解決這個問題。sql

3、解決問題

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的字符編碼問題就能夠獲得解決!

記錄學習的每一步,記錄每一次的成長!!!!

相關文章
相關標籤/搜索