MYSQL utf8mb4 设置
参数看起来很简单,做起来容易手忙脚乱,乱七八糟的错误。
1,参数文件:
[mysqld]
character-set-server = utf8mb4
collation-server = utf8mb4_unicode_ci
# init_connect='SET NAMES utf8mb4'
[mysql]
default-character-set = utf8mb4
如果做了主备集群,那么,建议先调整备库,再调整主库,调整后,都需要重启DB。
2, 数据库、表、字段级别 ,也设置为UTF8MB4 编码。
alter database ayst_data_stat character set utf8mb4 collate utf8mb4_unicode_ci ;
alter table user_info convert to character set utf8mb4 collate utf8mb4_unicode_ci ;
表调整时,可能会遇到报错,原因是 存在字符串唯一索引约束,但是字段里包含一些特殊字符, 在转码时违返了唯一约束,所以需要手工纠正数据。
3, MYCAT 调整:
mycat/conf/server.xml
域中增加一项:
<property name="charset">utf8mb4</property>
mycat/conf/index_to_charset.properties
在配置文件最后加入224=utf8mb4
,重启服务即正常
4, tomcat 应用服务器需要重启。