如何把MySQL8.0默認(rèn)字符集設(shè)置為utf8或utf8mb4的方式方法(只支持mysql8或以后版本)

[重要通告]如您遇疑難雜癥,本站支持知識(shí)付費(fèi)業(yè)務(wù),掃右邊二維碼加博主微信,可節(jié)省您寶貴時(shí)間哦!

UTF-8 編碼是一種變長(zhǎng)的編碼機(jī)制,可以用1~4個(gè)字節(jié)存儲(chǔ)字符。但MySQL 中的 utf8 編碼并不是真正的 UTF-8,其最長(zhǎng)只有3個(gè)字節(jié)。當(dāng)遇到占4個(gè)字節(jié)的 UTF-8 編碼,例如 emoji 字符或者復(fù)雜的漢字,會(huì)導(dǎo)致存儲(chǔ)異常。

從 5.5.3 開(kāi)始,MySQL 開(kāi)始用 utf8mb4 編碼來(lái)實(shí)現(xiàn)完整的 UTF-8,其中 mb4 表示 most bytes 4,最多占用4個(gè)字節(jié)。從 8.0 之后,將會(huì)在某個(gè)版本開(kāi)始用 utf8mb4 作為默認(rèn)字符編碼。uft8mb4 表示用 UTF-8 編碼方案,每個(gè)字符最多占4個(gè)字節(jié);

因?yàn)闅v史遺留問(wèn)題,MySQL 中的 utf8 編碼并不是真正的 UTF-8,而是閹割版的,最長(zhǎng)只有3個(gè)字節(jié)。當(dāng)遇到占4個(gè)字節(jié)的 UTF-8 編碼,例如 emoji 表情字符或者復(fù)雜的漢字,會(huì)導(dǎo)致存儲(chǔ)異常。

關(guān)于MySQL中默認(rèn)字符集utf8和utf8mb4有關(guān)設(shè)置

通過(guò)修改my.ini文件達(dá)到修改目的 MySQL 8.0.23的my.ini配置文件存儲(chǔ)位置;

注意事項(xiàng):請(qǐng)將my.ini事先備份,避免由于文件錯(cuò)誤造成MySQL無(wú)法使用

1.需要將MySQL80服務(wù)關(guān)閉,否者可能無(wú)法修改my.ini文件
2.在使用下面的的問(wèn)件時(shí)請(qǐng)先備份原文件my.ini。

打開(kāi)C:\ProgramData\MySQL\MySQL Server 8.0路徑下的my.ini配置文件
第一步:在[client]下將加入default-character-set=utf8mb4
第二步:在[mysql]下將# default-character-set=修改為default-character-set=utf8mb4
第三步:在[mysqld]下將# character-set-server=改為

character-set-client-handshake = FALSE
character-set-server=utf8mb4
collation-server=utf8mb4_unicode_ci
init_connect='SET NAMES utf8mb4'

注意:MySQL 8.0.23的my.ini的配置文件被保存在C:\ProgramData\MySQL\MySQL Server 8.0路徑下,并不在8.0版本以前的C:\Program Files\MySQL\MySQL Server 8.0路徑下

mysql設(shè)置默認(rèn)編碼為utf-8的方法:

1、使用文本編輯器打開(kāi)my.ini配置文件;

2、找到mysqld模塊,添加配置【character_set_server=utf8】;

3、保存配置文件并重啟mysql服務(wù)即可。

創(chuàng)建數(shù)據(jù)庫(kù)時(shí)指定字符集為 utf8mb4,作者本人喜歡使用:可以用以下命令來(lái)創(chuàng)建;

CREATE DATABASE mydbname CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

備注:字符除了需要存儲(chǔ),還需要排序或比較大小。推薦用 utf8mb4_unicode_ci

utf8老庫(kù)升級(jí):

CREATE DATABASE`你的庫(kù)名` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;

新建utf8庫(kù):

CREATE DATABASE mydbname CHARACTER SET utf8 COLLATE utf8_general_ci;

MySql utf8mb4 延伸閱讀:

utf8mb4 已成為 MySQL 8.0 的默認(rèn)字符集,在MySQL 8.0.1及更高版本中將utf8mb4_0900_ai_ci 作為默認(rèn)排序規(guī)則。

創(chuàng)建數(shù)據(jù)庫(kù)時(shí),如果沒(méi)有指定字符集,會(huì)采用服務(wù)器的默認(rèn)字符集。設(shè)置服務(wù)器默認(rèn)字符集為 utf8mb4 可以提高便利性。

show variables like "%char%";

character_set_client:客戶端請(qǐng)求數(shù)據(jù)的字符集
character_set_connection:從客戶端接收到數(shù)據(jù),然后傳輸?shù)淖址?br /> character_set_database:默認(rèn)數(shù)據(jù)庫(kù)的字符集,無(wú)論默認(rèn)數(shù)據(jù)庫(kù)如何改變,都是這個(gè)字符集;如果沒(méi)有默認(rèn)數(shù)據(jù)庫(kù),那就使用 character_set_server指定的字符集,這個(gè)變量建議由系統(tǒng)自己管理,不要人為定義。
character_set_filesystem:把操作系統(tǒng)上的文件名轉(zhuǎn)化成此字符集,即把 character_set_client轉(zhuǎn)換
character_set_filesystem, 默認(rèn)binary是不做任何轉(zhuǎn)換的
character_set_results:結(jié)果集的字符集
character_set_server:數(shù)據(jù)庫(kù)服務(wù)器的默認(rèn)字符集
character_set_system:存儲(chǔ)系統(tǒng)元數(shù)據(jù)的字符集,總是 utf8,不需要設(shè)置;

問(wèn)題未解決?付費(fèi)解決問(wèn)題加Q或微信 2589053300 (即Q號(hào)又微信號(hào))右上方掃一掃可加博主微信

所寫所說(shuō),是心之所感,思之所悟,行之所得;文當(dāng)無(wú)敷衍,落筆求簡(jiǎn)潔。 以所舍,求所獲;有所依,方所成!

支付寶贊助
微信贊助

免責(zé)聲明,若由于商用引起版權(quán)糾紛,一切責(zé)任均由使用者承擔(dān)。

您必須遵守我們的協(xié)議,如您下載該資源,行為將被視為對(duì)《免責(zé)聲明》全部?jī)?nèi)容的認(rèn)可->聯(lián)系老梁投訴資源
LaoLiang.Net部分資源來(lái)自互聯(lián)網(wǎng)收集,僅供用于學(xué)習(xí)和交流,請(qǐng)勿用于商業(yè)用途。如有侵權(quán)、不妥之處,請(qǐng)聯(lián)系站長(zhǎng)并出示版權(quán)證明以便刪除。 敬請(qǐng)諒解! 侵權(quán)刪帖/違法舉報(bào)/投稿等事物聯(lián)系郵箱:service@laoliang.net
意在交流學(xué)習(xí),歡迎贊賞評(píng)論,如有謬誤,請(qǐng)聯(lián)系指正;轉(zhuǎn)載請(qǐng)注明出處: » 如何把MySQL8.0默認(rèn)字符集設(shè)置為utf8或utf8mb4的方式方法(只支持mysql8或以后版本)

發(fā)表回復(fù)

本站承接,網(wǎng)站推廣(SEM,SEO);軟件安裝與調(diào)試;服務(wù)器或網(wǎng)絡(luò)推薦及配置;APP開(kāi)發(fā)與維護(hù);網(wǎng)站開(kāi)發(fā)修改及維護(hù); 各財(cái)務(wù)軟件安裝調(diào)試及注冊(cè)服務(wù)(金蝶,用友,管家婆,速達(dá),星宇等);同時(shí)也有客戶管理系統(tǒng),人力資源,超市POS,醫(yī)藥管理等;

立即查看 了解詳情