GBase 8a MPP Cluster 字符集修改
修改说明
- 背景
一般情况下,默认部署的数据库编码为utf8编码。 当需要插入表情符号时候,会提示报错如:。
为了解决特殊字符入库,需要对编码进行修改。以下按照utf8 修改utf8mb4 举例。
字符集存在层级继承关系:服务器级 -> 数据库级 -> 表级 -> 列级。
一、配置文件修改
目的:修改集群的默认环境为utf8mb4 。
方式:安装目录下,进入gcluster 和gnode 的配置文件目录,编辑 gbase_8a_gcluster.cnf 与 gbase_8a_gbase.cnf 文件 。将其中的default_character_set 取消注释,值修改为utf8mb4 。
其中文件中有2个地方,分别对应client和server, 都需要进行修改。
二、数据修改
1、库修改
目的:修改后,在这个库下创建的表,默认会自动变成对应的编码。
方式:alter database dbname character set utf8mb4 ;
2、表修改
目的:修改表的字符编码。这里不能只修改表的编码属性,需要将内容也一并进行转化。
方式:ALTER TABLE <tbname> CONVERT TO CHARACTER SET UTF8MB4;
注意:大表的长时间表锁、varchar最大长度由10922 变为 8191 ,注意定义类语句
三、系统库修改
目的:由于information_schema、performance_schem、gbase 库 不涉及与实体表关联,不用处理。
gctmpdb由于临时表,下面没有表,只需要将库属性修改即可。
但gclusterdb 下的dual 表,可能涉及到 常量查询后 再与实体表做merge,会提示不同字符集。建议将库和表修改。
评论
热门帖子
- 12025-12-01浏览数:182759
- 22023-05-09浏览数:25044
- 42023-09-25浏览数:18519
- 52020-05-11浏览数:17526