MySQL字符集utf8修改爲utf8mb4的方法步驟

這篇文章主要給大家介紹了關於MySQL字符集utf8修改爲utf8mb4的方法步驟,文中通過示例代碼介紹的非常詳細,對大家學習或者使用MySQL具有一定的參考學習價值,需要的朋友們下面來一起學習學習吧

對於mysql 5.5 而言,如果不設定字符集,mysql默認的字符集是 latin1 拉丁文字符集;

但隨着各種業務的進一步發展,除了各個國家的本身語言字符,經常也會有一些表情符號出現在應用程序中,而在mysql 5.5 之前,UTF-8編碼只支持1-3個字節,支持BMP這部分的Unicode編碼區;從MySQL 5.5開始,可以支持4個字節UTF編碼 utf8mb4 ,一個字符能夠支持更多的字符集,也能夠支持更多表情符號。

utf8mb4兼容utf8,且比utf8能表示更多的字符,是utf8字符集的超集。所以現在一些新的業務,比如ISO等,會將MySQL數據庫的字符集設置爲utf8mb4。

今天在處理一個應用需求的時候,就遇到這樣一個問題:

當然調整的最好方法是客戶端,mysql數據庫的字符集都修改爲utf8mb4,但這樣修改量比較大,而且如果客戶端一部分修改爲utf8,一部分爲utf8mb4的話,容易發生混亂。

經過幾次測試後,MySQL數據庫的my.cnf中關於字符集的配置修改爲下面的配置了:

[client] 
default-character-set=utf8mb4 
 
[mysqld] 
character-set-server = utf8mb4 
collation-server = utf8mb4_unicode_ci 
init_connect='SET NAMES utf8mb4' 
skip-character-set-client-handshake = true 
 
[mysql] 
default-character-set = utf8mb4 

使用MySQL字符集時的建議

• 建立數據庫/表和進行數據庫操作時儘量顯式指出使用的字符集,而不是依賴於MySQL的默認設置,否則MySQL升級時可能帶來很大困擾;

• 數據庫和連接字符集都使用latin1時雖然大部分情況下都可以解決亂碼問題,但缺點是無法以字符爲單位來進行SQL操作,一般情況下將數據庫和連接字符集都置爲utf8是較好的選擇;

• 使用mysql C API時,初始化數據庫句柄後馬上用mysql_options設定MYSQL_SET_CHARSET_NAME屬性爲utf8,這樣就不用顯式地用 SET NAMES語句指定連接字符集,且用mysql_ping重連斷開的長連接時也會把連接字符集重置爲utf8;

• 對於mysql PHP API,一般頁面級的PHP程序總運行時間較短,在連接到數據庫以後顯式用SET NAMES語句設置一次連接字符集即可;但當使用長連接時,請注意保持連接通暢並在斷開重連後用SET NAMES語句顯式重置連接字符集。

全面瞭解mysql中utf8和utf8mb4的區別:https://www.jb51.net/article/90037.htm

總結

以上就是這篇文章的全部內容了,希望本文的內容對大家的學習或者工作具有一定的參考學習價值,謝謝大家對神馬文庫的支持。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章