Mysql字符集问题

  • 格式:docx
  • 大小:22.06 KB
  • 文档页数:2

Mysql字符集问题
由于utf8是3个字节,一些表情符需要4字节,所以需要用utf8mb4字符集
Mysql配置方法
修改ProgramData\MySql路径中的my.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'
执行查询语句
SHOW VARIABLES WHERE Variable_name
LIKE 'character\_set\_%' OR Variable_name LIKE 'collation%';
修改成这样就成功了
使用云服务RDS,无法设置客户端默认值,只能设置服务端属性,因此需要配置客户端独立的编码集,由于mysql-connection-java还不支持utfmb4,所以只能在创建连接的时候确定字符集格式,增加如下配置
spring.datasource.tomcat.init-s-q-l=set names utf8mb4;
数据库配置好了之后,进行数据库以及数据表数据字段的升级,升级脚本如下
升级数据库
ALTER DATABASE database_name CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci;
升级数据表
ALTER TABLE table_name CONVERT TO CHARACTER SET utf8mb4 COLLATE utf8mb4_general_ci; 升级字段
ALTER TABLE table_name MODIFY COLUMN column_name VARCHAR(20) CHARACTER SET utf8mb4 COLLATE utf8mb4_unicode_ci;。