问题现象

系统从 MySQL 迁移到金仓后,JSON 字符串中的 \ 未自动转义,导致保存内容异常。

例如:

INSERT INTO t1 VALUES(‘{\”a\”:1}’);

MySQL 实际保存:

{“a”:1}

金仓默认保存:

{\”a\”:1}

导致程序 JSON 解析异常。

原因

金仓默认:

即:

\ 不作为转义字符
与 MySQL 默认行为不一致

处理方案

开启金仓反斜杠转义功能。

临时修改(立即生效)

查看参数:

修改参数:

参数说明:

参数值 含义
0 默认,不转义 \
1 开启 MySQL 风格转义

永久生效(重要)

需同步修改 kingbase.conf。

kingbase.conf 位置

常见位置:

或:

修改内容

找到:

修改为:

生效方式

修改 kingbase.conf 后:

必须重启金仓数据库。

例如:

按实际服务名为准。

注意事项

开启后:

会按 MySQL 转义规则解析。

可能影响:

  • Windows 文件路径
  • 正则表达式
  • 特殊字符串

例如:

可能被解析为:

因此涉及路径时建议: