关于用 MySQL 存储 Emoji
2023-09-27 14:24:03 时间
http://www.v2ex.com/t/137724
如果你希望让你的网站或者 App 支持 Emoji,那么在初次设置 MySQL 时,有一些细节你需要知道。
Emoji
Emoji 字符的特殊之处是,在存储时,需要用到 4 个字节。而 MySQL 中常见的 utf8 字符集的 utf8_general_ci
这个 collate 最大只支持 3 个字节。所以为了能够存储 Emoji,你需要改用 utf8mb4
字符集。
在创建表时,用类似这样的语句:
CREATE TABLE `tbl` (...) ENGINE=InnoDB DEFAULT CHARSET=utf8mb4 COLLATE utf8mb4_general_ci;
MySQL 版本
对 utf8mb4
字符集的支持是 MySQL 5.5 的新功能,所以你需要确保你使用的 MySQL 版本至少是 5.5。基本上,2014 年以后的新项目都应该直接上 5.6 了。
MySQL 备份和导入
在启用了 utf8mb4
字符集之后,备份和导入时就不能再用默认参数了。
用 mysqldump 备份时,需要加入:
mysqldump --default-charater-set=utf8mb4
而在恢复备份或通过程序连接时,需要在每次连接打开之后发送下面这条 SQL 指令:
SET CHARSET utf8mb4
相关文章
- mysql存储引擎
- mysql中,如何查看数据库元数据(metadata)的字符集?
- 【MySQL】MySQL的存储过程(1)
- MySQL 子查询使用方式
- 关于mysql存储过程创建动态表名及參数处理
- MySQL 8 存储JSON
- mysql sql常用语句大全
- MySQL创建存储过程(CREATE PROCEDURE)
- 2020年数据库概念与MySQL的安装与配置-从零基础入门MySQL-mysql8版本
- mysql循环批量插入测试数据
- mysql 存储过程函数权限
- 《深入浅出MySQL:数据库开发、优化与管理维护(第2版)》一一1.5 小结
- MariaDB/MySQL存储过程和函数
- mysql定时任务,每天的零点执行一个存储过程
- mysql存储过程中字符串参数单引号
- mysql存储过程中传decimal值会自动四舍五入,没有小数
- [PHP]关于如果你的环境是LINUX且恰好你的PHP是7同时你又不是编译的PHP源代码那你的mysql该怎么他妈链接这件事?
- Filebeat使用内置的mysql模块收集日志存储到ES集群并使用kibana存储
- Mysql 密码过期
- MySql存储过程与函数详解
- MySQL中的关联查询(内连接,外连接,自连接)
- (0.2.3)Mysql安装——二进制安装
- Mysql数据库存储过程
- [Mysql] 删除数据
- 利用Mysql定时+存储过程创建临时表统计数据