暂无图片
暂无图片
暂无图片
暂无图片
暂无图片

gbase 8a 修改集群字符集步骤

ben0124 2024-04-30
513

集群字符集默认为utf-8,设置集群为其他形式的字符集步骤如下:

以gbk字符集为例,设置集群使用gbk字符集:

1. 设置测试机的字符集为gbk

    #查看当前字符集并修改为gbk

[gbase@liurui-node-0 ~]$ echo $LANG

zh_CN.UTF-8

[gbase@liurui-node-0 ~]$ export LANG='zh_CN.gbk'

[gbase@liurui-node-0 ~]$  echo $LANG

zh_CN.gbk

2. 设置所用软件编码方式为gbk

  以cmd窗口为例,打开cmd窗口,右击鼠标选择编码方式然后再选择gbk。

3. 修改集群层、单机层配置文件,在[client]和[gbased]后添加变量   default_character_set=gbk,并重启集群服务

[client]

default_character_set=gbk

[gbased]

default_character_set=gbk

#查看修改后相关变量值

gbase>  show variables like '%character%';

+--------------------------+--------------------------------------------+

| Variable_name            | Value                                      |

+--------------------------+--------------------------------------------+

| character_set_client     | gbk                                        |

| character_set_connection | gbk                                        |

| character_set_database   | gbk                                        |

| character_set_filesystem | binary                                     |

| character_set_results    | gbk                                        |

| character_set_server     | gbk                                        |

| character_set_sort       | binary                                     |

| character_set_system     | utf8mb4                                    |

| character_sets_dir       | /opt/gcluster/server/share/gbase/charsets/ |

+--------------------------+--------------------------------------------+

9 rows in set (Elapsed: 00:00:00.01)

修改字符集后需要重新建库,若在修改前建的库下执行建表操作,新建的表默认字符集仍为修改前字符集;修改字符集时需保证集群上所有节点字符集一致,否则各节点所建的表字符集不一致,执行dml语句时会报错。

#各节点字符集不一致时报错信息

gbase>  show create table t3;

+-------+-----------------------------------------------------------------------------------------------+

|Table|                      Create   Table                                   |

+-------+-----------------------------------------------------------------------------------------------+

| t3    | CREATE TABLE "t3" (

  "a" int(11) DEFAULT NULL,

  "b" varchar(20) DEFAULT NULL

) ENGINE=EXPRESS DEFAULT CHARSET=gbk TABLESPACE='sys_tablespace' |

+-------+-----------------------------------------------------------------------------------------------+

1 row in set (Elapsed: 00:00:00.00)

 

gbase> insert into t3 values(2,'asd');

ERROR 1705 (HY000): gcluster DML error: Commit failed

ERROR NO: 1733ERROR DETAIL: (GBA-01EX-700) Gbase general error: (gns_host: 10.10.14.16) source table and destination table are not same: src:( localhost:test2.t3_n1 ) dst:( 10.10.11.231:test2.t3_n1 ) column type: [1]type: 1, precision: 60, scale: 0, is_lookup: 0, nulls_mode: 2, internal_size: 60, display_size: 20 -- type: 1, precision: 40, scale: 0, is_lookup: 0, nulls_mode: 2, internal_size: 40, display_size: 20

SQL: insert into t3 values(2,'asd')

 

「喜欢这篇文章,您的关注和赞赏是给作者最好的鼓励」
关注作者
【版权声明】本文为墨天轮用户原创内容,转载时必须标注文章的来源(墨天轮),文章链接,文章作者等基本信息,否则作者和墨天轮有权追究责任。如果您发现墨天轮中有涉嫌抄袭或者侵权的内容,欢迎发送邮件至:contact@modb.pro进行举报,并提供相关证据,一经查实,墨天轮将立刻删除相关内容。

评论