mac上mysql亂碼問題解決


一、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的字符編碼問題就可以得到解決!

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


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM