电脑知识|欧美黑人一区二区三区|软件|欧美黑人一级爽快片淫片高清|系统|欧美黑人狂野猛交老妇|数据库|服务器|编程开发|网络运营|知识问答|技术教程文章 - 好吧啦网

您的位置:首頁技術文章
文章詳情頁

MySQL 編碼utf8 與 utf8mb4 utf8mb4_unicode_ci 與 utf8mb4_general_ci

瀏覽:170日期:2023-10-15 08:27:11

參考:mysql字符集小結

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

新項目只考慮 utf8mb4

UTF-8 編碼是一種變長的編碼機制,可以用1~4個字節存儲字符。

因為歷史遺留問題,MySQL 中的 utf8 編碼并不是真正的 UTF-8,而是閹割版的,最長只有3個字節。當遇到占4個字節的 UTF-8 編碼,例如 emoji 字符或者復雜的漢字,會導致存儲異常。

從 5.5.3 開始,MySQL 開始用 utf8mb4 編碼來實現完整的 UTF-8,其中 mb4 表示 most bytes 4,最多占用4個字節。從 8.0 之后,將會在某個版本開始用 utf8mb4 作為默認字符編碼。

設置服務器默認字符集為 utf8mb4

創建數據庫時,如果沒有指定字符集,會采用服務器的默認字符集。設置服務器默認字符集為 utf8mb4 可以提高便利性。

編輯 MySQL 的配置文件

只需要關心5個系統變量,這5個都改為 utf8mb4 則修改成功:character_set_clientcharacter_set_connectioncharacter_set_resultscharacter_set_servercharacter_set_database

my.cnf 是MySQL 的配置文件,修改之前記得先備份:

vi /etc/my.cnf

在[mysqld]下面加上default-character-set=utf8后服務器啟動不了,莫名其妙。后來這么改就好了(MySQL5.7):

[mysqld]init_connect=’SET collation_connection = utf8mb4_unicode_ci’ init_connect=’SET NAMES utf8mb4’ character-set-server=utf8mb4collation-server=utf8mb4_unicode_ci skip-character-set-client-handshake...[client]default-character-set=utf8mb4

MySQL8.0 默認已經是 utf8mb4,不用改懂。如果你要改的話,配置文件如下:

[mysqld]datadir=/var/lib/mysqlsocket=/var/lib/mysql/mysql.socklog-error=/var/log/mysqld.logpid-file=/var/run/mysqld/mysqld.pidcharacter-set-server = utf8mb4[client]default-character-set=utf8mb4

重啟并確認

可以看到,系統編碼、連接編碼、服務器和客戶端編碼都設置為 UTF-8了:

mysql> show variables like '%char%';+--------------------------------------+--------------------------------+| Variable_name | Value |+--------------------------------------+--------------------------------+| character_set_client | utf8mb4 || character_set_connection | utf8mb4 || character_set_database| utf8mb4 || character_set_filesystem | binary || character_set_results| utf8mb4 || character_set_server | utf8mb4 || character_set_system | utf8 || character_sets_dir | /usr/share/mysql-8.0/charsets/ || validate_password.special_char_count | 1 |+--------------------------------------+--------------------------------+9 rows in set (0.00 sec)

MySQL 中字符集相關變量

character_set_client:客戶端請求數據的字符集character_set_connection:從客戶端接收到數據,然后傳輸的字符集character_set_database:默認數據庫的字符集,無論默認數據庫如何改變,都是這個字符集;如果沒有默認數據庫,那就使用 character_set_server指定的字符集,這個變量建議由系統自己管理,不要人為定義。character_set_filesystem:把操作系統上的文件名轉化成此字符集,即把 character_set_client轉換character_set_filesystem, 默認binary是不做任何轉換的character_set_results:結果集的字符集character_set_server:數據庫服務器的默認字符集character_set_system:存儲系統元數據的字符集,總是 utf8,不需要設置

創建數據庫時指定字符集為 utf8mb4

如果數據庫默認字符集不是 utf8mb4,那么可以在創建數據庫時指定字符集:

CREATE DATABASE mydb CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

排序字符集 collation

字符除了需要存儲,還需要排序或比較大小。推薦用 utf8mb4_unicode_ci,但是用 utf8mb4_general_ci 也沒啥問題。

MySQL 8.0 默認的是 utf8mb4_0900_ai_ci,屬于 utf8mb4_unicode_ci 中的一種,具體含義如下:

uft8mb4 表示用 UTF-8 編碼方案,每個字符最多占4個字節。 0900 指的是 Unicode 校對算法版本。(Unicode歸類算法是用于比較符合Unicode標準要求的兩個Unicode字符串的方法)。 ai指的是口音不敏感。也就是說,排序時e,è,é,ê和ë之間沒有區別。 ci表示不區分大小寫。也就是說,排序時p和P之間沒有區別。

utf8mb4 已成為默認字符集,在MySQL 8.0.1及更高版本中將utf8mb4_0900_ai_ci作為默認排序規則。以前,utf8mb4_general_ci是默認排序規則。由于utf8mb4_0900_ai_ci排序規則現在是默認排序規則,因此默認情況下新表格可以存儲基本多語言平面之外的字符。現在可以默認存儲表情符號。如果需要重音靈敏度和區分大小寫,則可以使用utf8mb4_0900_as_cs代替。

總結

到此這篇關于MySQL 編碼utf8 與 utf8mb4 utf8mb4_unicode_ci 與 utf8mb4_general_ci的文章就介紹到這了,更多相關mysql 編碼 utf8 與 utf8mb4內容請搜索好吧啦網以前的文章或繼續瀏覽下面的相關文章希望大家以后多多支持好吧啦網!

標簽: MySQL 數據庫
相關文章:
主站蜘蛛池模板: 微妙网,专业的动画师、特效师、CG模型设计师网站! - wmiao.com 超声波电磁流量计-液位计-孔板流量计-料位计-江苏信仪自动化仪表有限公司 | 印刷人才网 印刷、包装、造纸,中国80%的印刷企业人才招聘选印刷人才网! | 广东高华家具-公寓床|学生宿舍双层铁床厂家【质保十年】 | 顶空进样器-吹扫捕集仪-热脱附仪-二次热解吸仪-北京华盛谱信仪器 | 防勒索软件_数据防泄密_Trellix(原McAfee)核心代理商_Trellix(原Fireeye)售后-广州文智信息科技有限公司 | 必胜高考网_全国高考备考和志愿填报信息平台 | 铣刨料沥青破碎机-沥青再生料设备-RAP热再生混合料破碎筛分设备 -江苏锡宝重工 | 无锡网站建设_企业网站定制-网站制作公司-阿凡达网络 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 合金ICP光谱仪(磁性材料,工业废水)-百科 | 油漆辅料厂家_阴阳脚线_艺术漆厂家_内外墙涂料施工_乳胶漆专用防霉腻子粉_轻质粉刷石膏-魔法涂涂 | 百方网-百方电气网,电工电气行业专业的B2B电子商务平台 | 深圳激光打标机_激光打标机_激光焊接机_激光切割机_同体激光打标机-深圳市创想激光科技有限公司 深圳快餐店设计-餐饮设计公司-餐饮空间品牌全案设计-深圳市勤蜂装饰工程 | 解放卡车|出口|济南重汽|报价大全|山东三维商贸有限公司 | 鲁网 - 山东省重点新闻网站,山东第一财经门户 | 单锥双螺旋混合机_双螺旋锥形混合机-无锡新洋设备科技有限公司 | 招商帮-一站式网络营销服务|互联网整合营销|网络推广代运营|信息流推广|招商帮企业招商好帮手|搜索营销推广|短视视频营销推广 | 福建成考网-福建成人高考网| 立式硫化罐-劳保用品硫化罐-厂家直销-山东鑫泰鑫硫化罐厂家 | 陕西鹏展科技有限公司 | 厦门ISO认证|厦门ISO9001认证|厦门ISO14001认证|厦门ISO45001认证-艾索咨询专注ISO认证行业 | ?水马注水围挡_塑料注水围挡_防撞桶-常州瑞轩水马注水围挡有限公司 | 广西教师资格网-广西教师资格证考试网 | 哲力实业_专注汽车涂料汽车漆研发生产_汽车漆|修补油漆品牌厂家 长沙一级消防工程公司_智能化弱电_机电安装_亮化工程专业施工承包_湖南公共安全工程有限公司 | 天津蒸汽/热水锅炉-电锅炉安装维修直销厂家-天津鑫淼暖通设备有限公司 | 阿尔法-MDR2000无转子硫化仪-STM566 SATRA拉力试验机-青岛阿尔法仪器有限公司 | 地磅-电子地磅维修-电子吊秤-汽车衡-无人值守系统-公路治超-鹰牌衡器 | 广东机电安装工程_中央空调工程_东莞装饰装修-广东粤标建设有限公司 | 红立方品牌应急包/急救包加盟,小成本好项目代理_应急/消防/户外用品加盟_应急好项目加盟_新奇特项目招商 - 中红方宁(北京) 供应链有限公司 | 洁净化验室净化工程_成都实验室装修设计施工_四川华锐净化公司 | 不锈钢拉手厂家|浴室门拉手厂家|江门市蓬江区金志翔五金制品有限公司 | 地源热泵一体机,地源热泵厂家-淄博汇能环保设备有限公司 | 抖音短视频运营_企业网站建设_网络推广_全网自媒体营销-东莞市凌天信息科技有限公司 | 样品瓶(色谱样品瓶)百科-浙江哈迈科技有限公司 | 超细|超微气流粉碎机|气流磨|气流分级机|粉体改性机|磨粉机|粉碎设备-山东埃尔派粉体科技 | 土壤肥料养分速测仪_测土配方施肥仪_土壤养分检测仪-杭州鸣辉科技有限公司 | 铝合金脚手架厂家-专注高空作业平台-深圳腾达安全科技 | 山东锐智科电检测仪器有限公司_超声波测厚仪,涂层测厚仪,里氏硬度计,电火花检漏仪,地下管线探测仪 | 在线PH计-氧化锆分析仪-在线浊度仪-在线溶氧仪- 无锡朝达 | ★塑料拖链__工程拖链__电缆拖链__钢制拖链 - 【上海闵彬】 | 多功能三相相位伏安表-变压器短路阻抗测试仪-上海妙定电气 |