最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

Windows下mysql 5.7 設置區(qū)分大小寫(敏感),設置默認編碼 utf8mb4

 更新時間:2022年10月18日 18:15:44   作者:menkj  
最近需要將Windows下的mysql 5.7設置區(qū)分大小寫(敏感),設置默認編碼 utf8mb4,需要的朋友可以參考下

修改編碼

c盤下搜索

C:\ProgramData\MySQL\MySQL Server 5.7

在該my.ini文件下進行配置修改

[client] 
default-character-set = utf8mb4

[mysql] 
default-character-set = utf8mb4

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

區(qū)分大小寫

window下 改為2,

lower_case_table_names=2

最后保存 配置文件的時候注意 文件格式 ,類型 必須是 ANSI ,不小心保存成 utf-8 將不能啟動服務,

重啟mysql 服務ok

怎么從utf8轉(zhuǎn)換為utf8mb4

3.1 “偽”轉(zhuǎn)換

如果你的表定義和連接字符集都是utf8,那么直接在你的表上執(zhí)行

ALTER TABLE tbl_name CONVERT TO CHARACTER SET utf8mb4;

則能夠該表上所有的列的character類型變成 utf8mb4,表定義的默認字符集也會修改。連接的時候需要使用set names utf8mb4便可以插入四字節(jié)字符。(如果依然使用 utf8 連接,只要不出現(xiàn)四字節(jié)字符則完全沒問題)。

上面的 convert 有兩個問題,一是它不能ONLINE,也就是執(zhí)行之后全表禁止修改,有關(guān)這方面的討論見 mysql 5.6 原生Online DDL解析;二是,它可能會自動該表字段類型定義,如 VARCHAR 被轉(zhuǎn)成 MEDIUMTEXT,可以通過 MODIFY 指定類型為原類型。

另外 ALTER TABLE tbl_name DEFAULT CHARACTER SET utf8mb4 這樣的語句就不要隨便執(zhí)行了,特別是當表原本不是utf8時,除非表是空的或者你確認表里只有拉丁字符,否則正常和亂的就混在一起了。

最重要的是,你連接時使用的latin1字符集寫入了歷史數(shù)據(jù),表定義是latin1或utf8,不要期望通過 ALTER ... CONVERT ... 能夠讓你達到用utf8讀取歷史中文數(shù)據(jù)的目的,沒卵用,老老實實做邏輯dump。所以我才叫它“偽”轉(zhuǎn)換

3.2 character-set-server

一旦你決定使用utf8mb4,強烈建議你要修改服務端 character-set-server=utf8mb4,不同的語言對它的處理方法不一樣,c , php, python可以設置character-set,但java驅(qū)動依賴于 character-set-server 選項,后面有介紹。

同時還要謹慎一些特殊選項,如 遇到騰訊云CDB連接字符集設置一個坑。個人不建議設置全局 init_connect。

key 768 long 錯誤

字符集從utf8轉(zhuǎn)到utf8mb4之后,最容易引起的就是索引鍵超長的問題。

對于表行格式是 COMPACT或 REDUNDANT,InnoDB有單個索引最大字節(jié)數(shù) 768 的限制,而字段定義的是能存儲的字符數(shù),比如 VARCHAR(200) 代表能夠存200個漢字,索引定義是字符集類型最大長度算的,即 utf8 maxbytes=3, utf8mb4 maxbytes=4,算下來utf8和utf8mb4兩種情況的索引長度分別為600 bytes和800bytes,后者超過了768,導致出錯:Error 1071: Specified key was too long; max key length is 767 bytes。

COMPRESSED和DYNAMIC格式不受限制,但也依然不建議索引太長,太浪費空間和cpu搜索資源。

如果已有定義超過這個長度的,可加上前綴索引,如果暫不能加上前綴索引(像唯一索引),可把該字段的字符集改回utf8或latin1。
但是,( 敲黑板啦,很重要 ),要防止出現(xiàn) Illegal mix of collations (utf8_general_ci,IMPLICIT) and (utf8mb4_general_ci,COERCIBLE) for operation '=' 錯誤:連接字符集使用utf8mb4,但 SELECT/UPDATE where條件有utf8類型的列,且條件右邊存在不屬于utf8字符,就會觸發(fā)該異常。表示踩過這個坑。

再多加一個友好提示:EXPLAIN 結(jié)果里面的 key_len 指的搜索索引長度,單位是bytes,而且是以字符集支持的單字符最大字節(jié)數(shù)算的,這也是為什么 INDEX_LENGTH 膨脹厲害的一個原因。

到此這篇關(guān)于Windows下mysql 5.7 設置區(qū)分大小寫(敏感),設置默認編碼 utf8mb4的文章就介紹到這了,更多相關(guān)mysql 5.7區(qū)分大小寫utf8mb4編碼內(nèi)容請搜索腳本之家以前的文章或繼續(xù)瀏覽下面的相關(guān)文章希望大家以后多多支持腳本之家!

相關(guān)文章

  • MySQL六種約束的示例詳解

    MySQL六種約束的示例詳解

    約束是作用于表中字段上的規(guī)則,用于限制存儲在表中的數(shù)據(jù)。這篇文章主要為大家整理了一下MySQL中六種約束的用法,感興趣的可以了解一下
    2023-02-02
  • cmd中MySQL中文數(shù)據(jù)亂碼問題解決方法

    cmd中MySQL中文數(shù)據(jù)亂碼問題解決方法

    MySQL是默認utf8編碼的,所建數(shù)據(jù)庫也是設置utf8編碼,使用程序可以新增中文數(shù)據(jù),在cmd中使用SQL語句新增數(shù)據(jù)則報錯,有類似情況的朋友可以參考下本文
    2014-02-02
  • MySQL 根據(jù)條件多值更新的實現(xiàn)

    MySQL 根據(jù)條件多值更新的實現(xiàn)

    本文主要介紹了MySQL 根據(jù)條件多值更新的實現(xiàn),文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2025-03-03
  • MySQL執(zhí)行事務的語法與流程詳解

    MySQL執(zhí)行事務的語法與流程詳解

    這篇文章主要介紹了MySQL執(zhí)行事務的語法與流程的相關(guān)資料,文中通過圖文介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2021-01-01
  • Ubuntu下mysql與mysql workbench安裝教程

    Ubuntu下mysql與mysql workbench安裝教程

    這篇文章主要為大家詳細介紹了Ubuntu下mysql與mysql workbench的安裝教程,具有一定的參考價值,感興趣的小伙伴們可以參考一下
    2017-04-04
  • MySQL進行JSON查詢的詳細教程

    MySQL進行JSON查詢的詳細教程

    在MySQL中,一般會使用特定的 JSON 路徑表達式語法來導航和提取 JSON 文檔中的數(shù)據(jù),本文將為大家詳細介紹一下具體的查詢方法,希望對大家有所幫助
    2025-03-03
  • mysql中的各種約束條件深入探討

    mysql中的各種約束條件深入探討

    在mysql中對編輯的數(shù)據(jù)進行類型的限制,不滿足約束條件的報錯,本文給大家分享mysql中的各種約束條件,結(jié)合實例代碼給大家介紹的非常詳細,感興趣的朋友一起看看吧
    2024-05-05
  • 基于mysql replication的問題總結(jié)

    基于mysql replication的問題總結(jié)

    本篇文章是對mysql中replication的問題進行了詳細分析介紹,需要的朋友參考下
    2013-06-06
  • 淺談Mysql?tinyint(1)與tinyint(4)的區(qū)別

    淺談Mysql?tinyint(1)與tinyint(4)的區(qū)別

    本文主要介紹了淺談Mysql?tinyint(1)與tinyint(4)的區(qū)別,文中通過示例代碼介紹的非常詳細,對大家的學習或者工作具有一定的參考學習價值,需要的朋友們下面隨著小編來一起學習學習吧
    2023-03-03
  • MySQL表鎖定問題的原因、檢測與解決方案

    MySQL表鎖定問題的原因、檢測與解決方案

    在數(shù)據(jù)庫管理系統(tǒng)中,鎖是保證數(shù)據(jù)一致性和事務隔離性的重要機制,然而,鎖的使用也可能導致性能問題,尤其是在高并發(fā)場景下,表鎖定(Table Locking)可能會成為系統(tǒng)的瓶頸,本文將深入探討MySQL中表鎖定的原因、如何檢測表鎖定問題,并提供有效的解決方案
    2025-01-01

最新評論

金坛市| 于田县| 道真| 桐梓县| 旌德县| 林甸县| 嫩江县| 五台县| 扬州市| 汶上县| 原阳县| 台江县| 陇西县| 岱山县| 永嘉县| 斗六市| 乌兰察布市| 卓资县| 扬中市| 黔南| 炉霍县| 长乐市| 林芝县| 内乡县| 株洲县| 临海市| 泸定县| 陵川县| 邵东县| 黑河市| 永福县| 贵阳市| 银川市| 都匀市| 凤山市| 射洪县| 手游| 新建县| 宾阳县| 山阴县| 安远县|