mysql 使用 utf8mb4 编码
生活随笔
收集整理的這篇文章主要介紹了
mysql 使用 utf8mb4 编码
小編覺得挺不錯的,現在分享給大家,幫大家做個參考.
前言
- MySQL 操作版本: 5.7.26
為什么要使用 utf8mb4?
最直接的理由可以參考這兩個:
- How to support full Unicode in MySQL databases。
- 如果遇到錯誤 Incorrect string value: ‘\xF0\x9F\x92\x94’ 也需要升級到 utf8mb4 。
比較完整的理由:
- utf-8編碼按照3個字節一個單位進行編碼, 最大能編碼的 Unicode 字符是 0xffff,也就是 Unicode 中的基本多文種平面(BMP)。因此,任何不在基本多文本平面的 Unicode字符,都無法使用 utf-8 字符集存儲。比如,Emoji 表情(Emoji 是一種特殊的 Unicode 編碼,常見于 ios 和 android 手機上),不常用的漢字,任何新增的 Unicode 字符等等。
- utf8mb4的編碼,mb4就是most bytes 4的意思,專門用來兼容四字節的unicode。
MySQL 支持 utf8mb4 的版本
MySQL 5.5.3 開始支持 utf8mb4。
創建新的庫
創建數據庫時使用 utf8mb4
CREATE DATABASE IF NOT EXISTS yourdbname DEFAULT CHARSET utf8mb4 COLLATE utf8mb4_unicode_ci;創建表時使用 utf8mb4
CREATE TABLE `account` (`id` int(11) NOT NULL AUTO_INCREMENT COMMENT '主鍵',`nickname` varchar(50) NOT NULL COMMENT '名稱',PRIMARY KEY (`id`),UNIQUE KEY `uk_name` (`nickname`) ) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_unicode_ci COMMENT='賬號';升級已有的庫
升級MySQL
- 先備份數據庫
- 確保MySQL 版本 >= 5.5.3
- 配置mysql.ini
操作完成后記得重啟MySQL
升級庫和表
升級庫:
ALTER DATABASE yourdbname CHARACTER SET = utf8mb4 COLLATE = utf8mb4_unicode_ci;升級表:
ALTER TABLE yourtablename CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;升級字段:
ALTER TABLE yourtablename CHANGE column_name new_column_name VARCHAR(50) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;參考
How to support full Unicode in MySQL databases
Mysql UTF-8mb4字符集的問題
徹底解決:java.sql.SQLException: Incorrect string value: ‘\xF0\x9F\x92\x94’ for column ‘name’ at row 1
總結
以上是生活随笔為你收集整理的mysql 使用 utf8mb4 编码的全部內容,希望文章能夠幫你解決所遇到的問題。
- 上一篇: Spring Cloud Data Fl
- 下一篇: mysql 树表查询所有子节点