国产 无码 综合区,色欲AV无码国产永久播放,无码天堂亚洲国产AV,国产日韩欧美女同一区二区

Docker拉取mysql及utf8mb4_0900_ai_ci字符集解說(shuō)

這篇具有很好參考價(jià)值的文章主要介紹了Docker拉取mysql及utf8mb4_0900_ai_ci字符集解說(shuō)。希望對(duì)大家有所幫助。如果存在錯(cuò)誤或未考慮完全的地方,請(qǐng)大家不吝賜教,您也可以點(diǎn)擊"舉報(bào)違法"按鈕提交疑問(wèn)。

概要

主旨是為了研究mysql里的字符集,在實(shí)踐中發(fā)現(xiàn)中文的排序順序有點(diǎn)問(wèn)題,為了能讓中文排序正常,嘗試更改各種字符集做測(cè)試。

Mysql官方版本8.0以前默認(rèn)的應(yīng)該是latin1,8.0后默認(rèn)為utf8mb4了

Docker拉取mysql及utf8mb4_0900_ai_ci字符集解說(shuō),數(shù)據(jù)庫(kù),docker,mysql,容器Docker拉取mysql及utf8mb4_0900_ai_ci字符集解說(shuō),數(shù)據(jù)庫(kù),docker,mysql,容器

Docker安裝Mysql

docker拉取Mysql官方鏡像站地址:https://hub.docker.com/_/mysql

docker可以一鍵拉取,并映射本地/data/mysql/data 到 容器里的 /var/lib/mysql

docker pull mysql:8.2.0-oraclelinux8
docker run --name mysql8 -v /data/mysql/data:/var/lib/mysql -e MYSQL_ROOT_PASSWORD=root密碼 -p 3306:3306 -p 33060:33060 -d mysql:8.2.0-oraclelinux8

字符集配置

官方相關(guān)手冊(cè)說(shuō)明:MySQL :: MySQL 8.0 Reference Manual :: 10.2 Character Sets and Collations in MySQL

我們可以使用幾個(gè)命令查看

SELECT version();  #查看數(shù)據(jù)庫(kù)版本
SHOW CHARACTER SET;  #查看數(shù)據(jù)庫(kù)字符集
SHOW COLLATION WHERE Charset = 'utf8mb4';  #查看utf8mb4里可用的collation
SHOW VARIABLES LIKE 'character_set%';  #查看系統(tǒng)里對(duì)象的默認(rèn)字符集
SHOW VARIABLES LIKE 'collation_database%'; #查看數(shù)據(jù)庫(kù)的默認(rèn)collation

Docker拉取mysql及utf8mb4_0900_ai_ci字符集解說(shuō),數(shù)據(jù)庫(kù),docker,mysql,容器

utf8mb4utf8?的一個(gè)超集,就是可以多存放一些類型,比如表情符號(hào),是Mysql8后的推薦的字符集,最大支持長(zhǎng)度4個(gè)字節(jié),最小占用存儲(chǔ)長(zhǎng)度還是1個(gè)字節(jié),utf8的邊碼規(guī)則和原理可以查看我的同名博客文章?ASCII、Unicode、UCS-2、UTF-8互轉(zhuǎn)

?排序規(guī)則說(shuō)明

我們查看utf8mb4下面其實(shí)會(huì)有很多排序規(guī)則可以選擇

Docker拉取mysql及utf8mb4_0900_ai_ci字符集解說(shuō),數(shù)據(jù)庫(kù),docker,mysql,容器?

以上這些規(guī)則具體選用哪一個(gè),選擇的依據(jù)是是什么呢

以默認(rèn)的這個(gè)?utf8mb4_0900_ai_ci 示例說(shuō)明

● 0900 是指?UCA 9.0.0標(biāo)準(zhǔn)。其中 UCA是?Unicode Collation Algorithm的縮寫,UCA 9.0.0標(biāo)準(zhǔn)可以參考(?https://www.unicode.org/Public/UCA/9.0.0/allkeys.txt )

像?utf8mb4_unicode_520_ci 就是?UCA 5.2.0 (?https://www.unicode.org/Public/UCA/5.2.0/allkeys.txt )

● ai、ci說(shuō)明

官方這一塊的說(shuō)明:MySQL :: MySQL 8.0 Reference Manual :: 10.3.1 Collation Naming Conventions

Suffix Meaning
_ai Accent-insensitive??
_as Accent-sensitive
_ci Case-insensitive
_cs Case-sensitive
_ks Kana-sensitive
_bin Binary

?aias是相對(duì)的,是否區(qū)分重音的意思,對(duì)于中國(guó)場(chǎng)景其實(shí)是用不到的,比如?Cafe和Café,一個(gè)頭上有音標(biāo)一個(gè)沒(méi)有音標(biāo)這種。

cics是相對(duì)的,是否大小寫敏感,如果是ci場(chǎng)景,hengrui=Hengrui,如果是cs場(chǎng)景?hengrui≠Hengrui

ks 是日語(yǔ)里假名的意思?かな(kana)

還有帶地域的?utf8mb4_zh_0900_as_cs

● zh是中文的意思

這一塊簡(jiǎn)寫可以參考下表,官方地址:MySQL :: MySQL 8.0 Reference Manual :: 10.10.1 Unicode Character Sets

Language Language Specifier
Bosnian bs
Bulgarian bg
Chinese zh
Classical Latin la?or?roman
Croatian hr?or?croatian
Czech cs?or?czech
Danish da?or?danish
Esperanto eo?or?esperanto
Estonian et?or?estonian
Galician gl
German phone book order de_pb?or?german2
Hungarian hu?or?hungarian
Icelandic is?or?icelandic
Japanese ja
Latvian lv?or?latvian
Lithuanian lt?or?lithuanian
Mongolian mn
Norwegian / Bokm?l nb
Norwegian / Nynorsk nn
Persian persian
Polish pl?or?polish
Romanian ro?or?romanian
Russian ru
Serbian sr
Sinhala sinhala
Slovak sk?or?slovak
Slovenian sl?or?slovenian
Modern Spanish es?or?spanish
Traditional Spanish es_trad?or?spanish2
Swedish sv?or?swedish
Turkish tr?or?turkish
Vietnamese vi?or?vietnamese

注意點(diǎn)

在不同字符排序規(guī)則之間做比較系統(tǒng)是會(huì)報(bào)錯(cuò)的,所以建議在設(shè)計(jì)數(shù)據(jù)庫(kù)的時(shí)候就設(shè)定好

報(bào)錯(cuò)示例

Docker拉取mysql及utf8mb4_0900_ai_ci字符集解說(shuō),數(shù)據(jù)庫(kù),docker,mysql,容器

如果歷史因素必須出現(xiàn)不同字符排序,可以手動(dòng)聲明規(guī)則,示例:collate utf8mb4_0900_ai_ci文章來(lái)源地址http://www.zghlxwxcb.cn/news/detail-815024.html

SELECT t1.* 
FROM test.table1 t1
inner join test.table2 t2 on t1.comment = t2.comment collate utf8mb4_0900_ai_ci

到了這里,關(guān)于Docker拉取mysql及utf8mb4_0900_ai_ci字符集解說(shuō)的文章就介紹完了。如果您還想了解更多內(nèi)容,請(qǐng)?jiān)谟疑辖撬阉鱐OY模板網(wǎng)以前的文章或繼續(xù)瀏覽下面的相關(guān)文章,希望大家以后多多支持TOY模板網(wǎng)!

本文來(lái)自互聯(lián)網(wǎng)用戶投稿,該文觀點(diǎn)僅代表作者本人,不代表本站立場(chǎng)。本站僅提供信息存儲(chǔ)空間服務(wù),不擁有所有權(quán),不承擔(dān)相關(guān)法律責(zé)任。如若轉(zhuǎn)載,請(qǐng)注明出處: 如若內(nèi)容造成侵權(quán)/違法違規(guī)/事實(shí)不符,請(qǐng)點(diǎn)擊違法舉報(bào)進(jìn)行投訴反饋,一經(jīng)查實(shí),立即刪除!

領(lǐng)支付寶紅包贊助服務(wù)器費(fèi)用

相關(guān)文章

  • MySQL報(bào)錯(cuò) 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘

    MySQL報(bào)錯(cuò) 1273 - Unknown collation: ‘utf8mb4_0900_ai_ci‘

    MySQL報(bào)錯(cuò)如下 原因 : 我這里SQL文件對(duì)應(yīng)的MySQL版本是8.0版本,我本地是5.7版本,高級(jí)往低級(jí)導(dǎo)入時(shí) 版本不兼容 ,引發(fā)了1273錯(cuò)誤。 解決方法 : 將文件中的所有 utf8mb4_0900_ai_ci 替換為 utf8_general_ci ,同時(shí)將 utf8mb4 替換為 utf8 。

    2024年02月11日
    瀏覽(16)
  • MySQL - 常用排序規(guī)則utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_0900_ai_ci和存儲(chǔ)字符集 utf8 和 utf8

    MySQL - 常用排序規(guī)則utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_0900_ai_ci和存儲(chǔ)字符集 utf8 和 utf8

    在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),我們經(jīng)常會(huì)需要填寫數(shù)據(jù)庫(kù)名、字符集、排序規(guī)則 常用的存儲(chǔ)字符集 utf8 和 utf8mb4 排序字符集 utf8mb4_unicode_ci 和 utf8mb4_general_ci、utf8mb4_bin、utf8mb4_0900_ai_ci 1、utf8 utf8 是 Mysql 中的一種字符集,只支持最長(zhǎng)三個(gè)字節(jié)的 UTF-8 字符,也就是 Unicode 中的基本多文本平

    2024年02月09日
    瀏覽(26)
  • MySQL常用排序規(guī)則utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_0900_ai_ci和存儲(chǔ)字符集 utf8 和 utf8mb4

    MySQL常用排序規(guī)則utf8mb4_general_ci、utf8mb4_unicode_ci、utf8mb4_bin、utf8mb4_0900_ai_ci和存儲(chǔ)字符集 utf8 和 utf8mb4

    在創(chuàng)建數(shù)據(jù)庫(kù)時(shí),我們經(jīng)常會(huì)需要填寫數(shù)據(jù)庫(kù)名、字符集、排序規(guī)則; 而本文主要講述常用的存儲(chǔ)字符集 utf8 和 utf8mb4;排序字符集 utf8mb4_unicode_ci 和 utf8mb4_general_ci、utf8mb4_bin、utf8mb4_0900_ai_ci 一般我本人創(chuàng)建創(chuàng)建數(shù)據(jù)庫(kù)通常排序規(guī)則都使用utf8mb4_general_ci,因?yàn)閷?duì)特殊字符的順

    2024年01月17日
    瀏覽(23)
  • MySQL執(zhí)行異常: Illegal mix of collations (utf8mb4_0900_ai_ci IMPLICIT) and (utf8mb4_general_ci...

    MySQL執(zhí)行異常: Illegal mix of collations (utf8mb4_0900_ai_ci IMPLICIT) and (utf8mb4_general_ci...

    Mysql生產(chǎn)庫(kù)存儲(chǔ)過(guò)程升級(jí)后執(zhí)行報(bào)錯(cuò):SQL錯(cuò)誤( 1267 ) : Illegal mix of collations (utf8mb4_0900_ai _ci IMPLICIT) and (utf8mb4_general_ci IMPLICIT) for operation ‘=’。根據(jù)錯(cuò)誤提示,報(bào)錯(cuò)原因應(yīng)該是=號(hào)兩側(cè)內(nèi)容的排序規(guī)則(collation)不一致導(dǎo)致的報(bào)錯(cuò)。 產(chǎn)生這個(gè)問(wèn)題一種情況是兩個(gè)字段的排序規(guī)則不

    2024年02月16日
    瀏覽(23)
  • MySQL提示Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT)

    MySQL提示Illegal mix of collations (utf8mb4_0900_ai_ci,IMPLICIT) and (utf8mb4_general_ci,IMPLICIT)

    根據(jù)錯(cuò)誤提示,報(bào)錯(cuò)原因應(yīng)該是=號(hào)兩側(cè)內(nèi)容的排序規(guī)則(collation)不一致導(dǎo)致的報(bào)錯(cuò)。 原sql中出現(xiàn)了: status?!=\\\'取消\\\' 原因是:表字段的排序規(guī)則為utf8mb4_0900_ai _ci,而字面常量是排序規(guī)則是utf8mb4_general_ci ?collation_connection用于字面常量比較,如果字段比較會(huì)使用字段或表聲明

    2024年01月18日
    瀏覽(24)
  • 8.0的排序規(guī)則utf8mb4_0900_ai_ci和utf8mb4_general_ci有何區(qū)別?

    utf8mb4_0900_ai_ci和utf8mb4_general_ci都是MySQL針對(duì)utf8mb4編碼的排序規(guī)則。 對(duì)于utf8mb4_0900_ai_ci來(lái)說(shuō),0900代表Unicode 9.0的規(guī)范,ai表示accent insensitivity,也就是“不區(qū)分音調(diào)”,而ci表示case insensitivity,也就是“不區(qū)分大小寫”。 MySQL 8.0之后,默認(rèn)collation不再像之前版本一樣是是utf8mb4

    2024年02月11日
    瀏覽(25)
  • Unknown collation: ‘utf8mb4_0900_ai_ci’的解決方法

    Unknown collation: ‘utf8mb4_0900_ai_ci’的解決方法

    今天在用Navicat往mysql(5.7版本)導(dǎo)入sql文件時(shí),出現(xiàn)Unknown collation: \\\'utf8mb4_0900_ai_ci’錯(cuò)誤。 分析 出現(xiàn)這樣的問(wèn)題是原sql文件是mysql(8.0版本),高級(jí)往低級(jí)(5.7版本)導(dǎo)入時(shí)出現(xiàn)版本不兼容的情況。 解決 把文件中的所有的 utf8mb4_0900_ai_ci 替換為 utf8_general_ci 以及 utf8mb4 替換為

    2024年02月11日
    瀏覽(22)
  • 【MySQL異常解決】MySQL執(zhí)行SQL文件出現(xiàn)【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解決方案

    【MySQL異常解決】MySQL執(zhí)行SQL文件出現(xiàn)【Unknown collation ‘utf8mb4_0900_ai_ci‘】的解決方案

    從服務(wù)器MySQL中導(dǎo)出數(shù)據(jù)為SQL執(zhí)行腳本后,在本地電腦執(zhí)行導(dǎo)出的SQL腳本, 報(bào)錯(cuò): Unknown collation ‘utf8mb4_0900_ai_ci‘ 打開(kāi)SQL腳本,查看 utf8mb4_0900_ai_ci ,這是字段的字符集。 1、MySQL 版本不一樣; 2、utf8mb4_0900_ai_ci 在 MySQL 8 以下是不被支持的,檢查發(fā)現(xiàn)本地?cái)?shù)據(jù)庫(kù)為5.7,

    2024年02月16日
    瀏覽(27)
  • 數(shù)據(jù)表中字段排序規(guī)則不一致(utf8mb4_general_ci、utf8mb4_0900_ai_ci)導(dǎo)致的錯(cuò)誤,附解決辦法

    數(shù)據(jù)表中字段排序規(guī)則不一致(utf8mb4_general_ci、utf8mb4_0900_ai_ci)導(dǎo)致的錯(cuò)誤,附解決辦法

    環(huán)境: 數(shù)據(jù)庫(kù)版本MySQL 8.0.32 報(bào)錯(cuò): 在查詢數(shù)據(jù)的時(shí)候返回以下錯(cuò)誤 \\\"(1267, \\\"Illegal mix of collations (utf8mb4_general_ci,IMPLICIT) and (utf8mb4_0900_ai_ci,IMPLICIT) for operation \\\'=\\\'\\\")\\\" 報(bào)錯(cuò)分析及初期解決過(guò)程: 該錯(cuò)誤是因?yàn)樵趫?zhí)行查詢或比較操作時(shí),涉及到了不同字符集的表或字段之間的比較,

    2024年02月13日
    瀏覽(24)
  • 執(zhí)行SQL文件出現(xiàn)【Unknown collation “utf8mb4_0900_ai_ci”】的解決方案

    執(zhí)行SQL文件出現(xiàn)【Unknown collation “utf8mb4_0900_ai_ci”】的解決方案

    從服務(wù)器MySQL中導(dǎo)出數(shù)據(jù)為SQL執(zhí)行腳本后,在本地執(zhí)行導(dǎo)出的SQL腳本。 報(bào)錯(cuò):Unknown collation “utf8mb4_0900_ai_ci” 打開(kāi)SQL腳本,查看 utf8mb4_0900_ai_ci ,這是字段的字符集。 1、MySQL 版本不一致。 2、字符集編碼不支持。 1、升級(jí) MySQL 數(shù)據(jù)庫(kù)版本 將本地5.7版本的 MySQL數(shù)據(jù)庫(kù)升

    2024年02月11日
    瀏覽(29)

覺(jué)得文章有用就打賞一下文章作者

支付寶掃一掃打賞

博客贊助

微信掃一掃打賞

請(qǐng)作者喝杯咖啡吧~博客贊助

支付寶掃一掃領(lǐng)取紅包,優(yōu)惠每天領(lǐng)

二維碼1

領(lǐng)取紅包

二維碼2

領(lǐng)紅包