java服务端和mysql对utf8mb4的支持

1,424 阅读1分钟

一.建议jdbc驱动版本在5.1.38以上

1.保持该版本以上的原因是可以让jdbcurl中的useUnicode=true&characterEncoding=utf8属性继续生效

完整的连接类似于:jdbc:mysql://xxxx:xxxx/xxxx?useUnicode=true&characterEncoding=utf8&autoReconnect=true&failOverReadOnly=false&useOldAliasMetadataBehavior=true&zeroDateTimeBehavior=convertToNull&allowMultiQueries=true

<dependency>
    <groupId>mysql</groupId>
    <artifactId>mysql-connector-java</artifactId>
    <version>5.1.38</version>
</dependency>

二.确认mysql版本5.6以上

SELECT version();

1.查看当前字符集

SHOW VARIABLES WHERE Variable_name LIKE 'character_set_%' OR Variable_name LIKE 'collation%';

2.修改字符集

ALTER DATABASE db_name CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;

3.修改mysql配置文件my.cnf

my.cnf一般在etc/mysql/my.cnf位置。找到后请在以下三部分里添加如下内容:

[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

4.重启mysql...