MySQL设置utf8mb4需要客户端、到MySQL实例的连接、MySQL服务器都需要支持 utf8mb4 字符集。MySQL需要5.6+。
JDBC连接
JDBC 连接需要MySQL Connector/J 5.1.13以上版本,maven pom.xml配置:
<dependency>
<groupId>mysql</groupId>
<artifactId>mysql-connector-java</artifactId>
<version>5.1.19</version>
</dependency>
jdbc连接使用characterEncoding=utf8
jdbc:mysql://xxxx.mysql.rds.aliyuncs.com:3888/mydb?useUnicode=true&characterEncoding=UTF-8
RDS 实例配置
1、在控制台 -> 参数配置 中修改 character_set_server 参数为 utf8mb4。
2、设置库的字符集为 utf8mb4
set names utf8mb4
对连接设置utf8mb4,这里使用set names utf8mb4。很多数据库连接池有属性connectionInitSqls,它是创建连接时,先执行sql。如DruidDataSource
<bean class="com.alibaba.druid.pool.DruidDataSource" init-method="init" destroy-method="close">
<!-- 基本属性 url、user、password -->
<property name="url" value="${jdbc.url}" />
<property name="username" value="${jdbc.username}"/>
<property name="password" value="${jdbc.password}"/>
<!-- .... -->
<property name="connectionInitSqls" value="set names utf8mb4;" />
</bean>