GBase 8a
运维管理
文章

GBase 8a MPP Cluster 字符集修改

发表于2026-03-27 14:56:3435次浏览0个评论

修改说明

  • 背景

一般情况下,默认部署的数据库编码为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,会提示不同字符集。建议将库和表修改。

     

评论

登录后才可以发表评论