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
[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'
操作完成后记得重启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 编码相关推荐
- MySQL设置utf8mb4编码
有一个项目需要存储ios的表情(emoji表情) 这种表情虽然是utf8编码,但是一个字符需要占用4个字节,而MySQL utf8编码只能存放3字节的字符. 在MySQL 5.6中,可以设置编码为ut ...
- php mysql utf8mb4,MySQL设置utf8mb4编码
有一个项目需要存储ios的表情(emoji表情),这种表情虽然是utf8编码,但是一个字符需要占用4个字节,而MySQL utf8编码只能存放3字 有一个项目需要存储ios的表情(emoji表情) 这 ...
- mysql 运行sql 编码_关于解决运行 sql 文件时, 找不到 MySQL 默认编码 utf8mb4 的问题...
关于解决运行 sql 文件时, 找不到 MySQL 默认编码 utf8mb4 的问题 本人小白一名, 最近碰到了一个问题, 在 navicat 导入 MySQL 文件时, 报出 MySQL 找不到 u ...
- 修改mysql用utf8mb4_更改MySQL数据库的编码为utf8mb4
原文:http://blog.csdn.net/woslx/article/details/49685111 utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3 ...
- mysql utf8mb4 配置_MariaDB(Mysql)配置utf8mb4编码
在配置完MariaDB(MySQL) Linux服务器环境后,发现windows MySQL上使用的是utf8mb4编码,而服务器端MariaDB(MySQL)还是默认使用utf8进行编码,导出的sq ...
- mysql 更改数据库编码_更改MySQL数据库的编码为utf8mb4
utf-8编码可能2个字节.3个字节.4个字节的字符,但是MySQL的utf8编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用utf-8编码的数据库中插入表情数据,Java程 ...
- mysql改utf8mb4后速度慢_更改MySQL数据库的编码为utf8mb4
更改MySQL数据库的编码为utf8mb4 utf8mb4编码是utf8编码的超集,兼容utf8,并且能存储4字节的表情字符. 采用utf8mb4编码的好处是:存储与获取数据的时候,不用再考虑微信昵称 ...
- mysql utf8mb4 php_MySQL设置utf8mb4编码_MySQL
有一个项目需要存储ios的表情(emoji表情) 这种表情虽然是utf8编码,但是一个字符需要占用4个字节,而MySQL utf8编码只能存放3字节的字符. 在MySQL 5.6中,可以设置编码为ut ...
- mysql修改7tf8mb4_更改MySQL数据库的编码为utf8mb4
utf-8 编码可能2个字节.3个字节.4个字节的字符,但是 MySQL 的 utf8 编码只支持3字节的数据,而移动端的表情数据是4个字节的字符.如果直接往采用 utf-8 编码的数据库中插入表情数 ...
最新文章
- gsoap 学习 1-自己定义接口生成头文件
- windows server 2008 - 创建域和本机用户
- python双轴折线图是什么意思_操作-简易图形-折线图
- 程序员面试、算法研究、编程艺术、红黑树、机器学习5大系列集锦
- 软件测试都需要哪些工具呢?一文带你看清
- repo start master --all 和repo start --all master区别
- 要做网络营销 这样的讲座不能错过
- 互联网架构师祝大家中秋节快乐!快领红包了!
- html图像设计代码,html——图像设计(示例代码)
- 计算机硬盘中没有设控制器,电脑设置硬盘为兼容模式
- 查看服务器阵列卡型号6,怎么查看 dell 阵列卡型号#如何通过服务器自检画面的信息查看当前阵列卡的型号...
- 项目管理术语英汉对照表
- 小白入门——关于什么是区块链
- 在服务器上离线下载并在线播放 Cloud Torrent
- 用H5 canvas实现唯美渐变色块的绘制
- 51单片机hc-sr04超声波模块控制的c语言编程,基于STM32单片机对HCSR04超声波的控制...
- java中void和int的意思_c语言void和int的区别
- 网络虚拟化之virtio-net和vhost
- MongoDB数据库运维工具的使用
- c语言括号表示法画树怎么画,树的画法分类讲解