RDS for MySQL 使用 utf8mb4 字符集存储 emoji 表情

本文涉及的产品
云数据库 RDS MySQL,集群系列 2核4GB
推荐场景:
搭建个人博客
RDS MySQL Serverless 基础系列,0.5-2RCU 50GB
云数据库 RDS MySQL,高可用系列 2核4GB
简介: RDS for MySQL 使用 utf8mb4 字符集存储 emoji 表情

RDS for MySQL 使用 utf8mb4 字符集存储 emoji 表情

1. 基本原则

2. 三个条件的说明

2.1 应用客户端

2.2 应用到 RDS MySQL 实例的连接

2.3 RDS 实例配置

3. 通过 set names 命令设置会话字符集


1. 基本原则

如果要实现存储 emoji 表情到 RDS for MySQL 实例,需要应用客户端、到 RDS for MySQL 实例的连接、RDS 实例内部 3 个方面统一使用或者支持 utf8mb4 字符集。

注:关于 utf8mb4 字符集,请参考 MySQL 官方文档

2. 三个条件的说明

2.1 应用客户端

客户端需要保证输出的字符串的字符集为 utf8mb4。

2.2 应用到 RDS MySQL 实例的连接

以常见的 JDBC 连接为例:

  • 对于 JDBC 连接,需要使用 MySQL Connector/J 5.1.13(含)以上的版本。
  • JDBC 的连接串中,不配置 characterEncoding 选项。

注:关于 MySQL Connector/J 5.1.13,请参考 MySQL 官方 Release Notes

比如

url="jdbc:mysql://myrds.mysql.rds.aliyuncs.com:3306/my_db"

 

2.3 RDS 实例配置

Step 1. 在控制台  参数配置 中修改 character_set_server 参数为 utf8mb4。

 character_set_server_01.png

设置 character_set_server 为 utf8mb4 后,应用客户端与 RDS for MySQL 实例建立连接过程中 RDS for MySQL 实例会告知客户端连接字符集应为 utf8mb4。

注:关于如何使用 utf8mb4 字符集存储 emoji 表情,也可以参考 MySQL 官方文档

Step 2. 设置库的字符集为 utf8mb4

db_utf8mb4_01.png 

Step 3. 设置表的字符集为 utf8mb4

create table emoji_01 (
    id int auto_increment primary key,
    content varchar(255)
)  default charset utf8mb4;

 

 tab_utf8mb4_01.png

3. 通过 set names 命令设置会话字符集

对于 JDBC 连接串设置了 characterEncoding 为 utf8 或者做了上述配置仍旧无法正常插入 emoji 数据的情况,建议在代码中指定连接的字符集为 utf8mb4,样例代码如下:

String sqlCharset = "set names utf8mb4"

Statement statment = conn.createStatement();

resultSet = statment.executeQuery(sqlCharset);

 

注: set names utf8mb4; 命令会将 character_set_client、character_set_connection、character_set_results 3个会话字符集相关变量均设置为 utf8mb4,以保证写入或者读出的数据使用 utf8mb4 字符集进行解释。

相关实践学习
如何在云端创建MySQL数据库
开始实验后,系统会自动创建一台自建MySQL的 源数据库 ECS 实例和一台 目标数据库 RDS。
全面了解阿里云能为你做什么
阿里云在全球各地部署高效节能的绿色数据中心,利用清洁计算为万物互联的新世界提供源源不断的能源动力,目前开服的区域包括中国(华北、华东、华南、香港)、新加坡、美国(美东、美西)、欧洲、中东、澳大利亚、日本。目前阿里云的产品涵盖弹性计算、数据库、存储与CDN、分析与搜索、云通信、网络、管理与监控、应用服务、互联网中间件、移动服务、视频服务等。通过本课程,来了解阿里云能够为你的业务带来哪些帮助     相关的阿里云产品:云服务器ECS 云服务器 ECS(Elastic Compute Service)是一种弹性可伸缩的计算服务,助您降低 IT 成本,提升运维效率,使您更专注于核心业务创新。产品详情: https://www.aliyun.com/product/ecs
目录
相关文章
|
4月前
|
存储 关系型数据库 MySQL
Linux 安装 mysql 及配置存储位置
Linux 安装 mysql 及配置存储位置
155 3
|
3月前
|
存储 关系型数据库 MySQL
MySQL——数据库备份上传到阿里云OSS存储
MySQL——数据库备份上传到阿里云OSS存储
168 0
|
3月前
|
存储 关系型数据库 MySQL
mysql 使用变量存储中间结果的写法
mysql 使用变量存储中间结果的写法
|
1月前
|
存储 关系型数据库 MySQL
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
PACS系统 中 dicom 文件在mysql 8.0 数据库中的 存储和读取(pydicom 库使用)
31 2
|
1月前
|
存储 SQL 关系型数据库
MySQL 存储函数及调用
MySQL 存储函数及调用
57 3
|
1月前
|
存储 关系型数据库 MySQL
MySQL 如何存储地理信息
MySQL 如何存储地理信息
95 1
|
2月前
|
存储 关系型数据库 MySQL
深入解析MySQL数据存储机制:从表结构到物理存储
深入解析MySQL数据存储机制:从表结构到物理存储
160 1
|
1月前
|
存储 关系型数据库 MySQL
Key_Value 形式 存储_5级省市城乡划分代码 (mysql 8.0 实例)
本文介绍了如何使用MySQL8.0数据库中的Key_Value形式存储全国统计用区划代码和城乡划分代码(5级),包括导入数据、通过数学函数提取省市区信息,以及查询5级行政区划的详细数据。
30 0
|
4月前
|
关系型数据库 MySQL Serverless
函数计算产品使用问题之调用RDS MySQL的步骤是怎样的
函数计算产品作为一种事件驱动的全托管计算服务,让用户能够专注于业务逻辑的编写,而无需关心底层服务器的管理与运维。你可以有效地利用函数计算产品来支撑各类应用场景,从简单的数据处理到复杂的业务逻辑,实现快速、高效、低成本的云上部署与运维。以下是一些关于使用函数计算产品的合集和要点,帮助你更好地理解和应用这一服务。
|
4月前
|
关系型数据库 MySQL 存储

热门文章

最新文章