首页/系统/信创系统运维速查/MySQL 迁移金仓适配要点
迁移适配65 条

MySQL 迁移金仓适配要点

MySQL 到金仓(PG 系)的差异点:标识符引号与大小写、自增与序列、类型(布尔/日期)、LIMIT 语法;应用连接层同步调整。

信创系统运维速查系统更新于 2026-10-13

MySQL 迁移金仓要适配什么

金仓数据库属于 PostgreSQL 技术体系,从 MySQL 迁移的主要差异集中在语法与语义层:标识符的引号符号与大小写折叠规则不同、自增列要改造成序列或 identity、布尔与日期类型的处理方式不同、分页语法从 LIMIT 风格变为标准兼容写法;应用侧的连接驱动与连接串也必须同步替换。只换数据库不换驱动,是迁移中最典型的半截工程。

基本信息

常见监听端口默认实例端口 54321,以实际配置为准
命令行工具ksql,参数含 -U 用户、-p 端口、-d 数据库
初始管理员system,权限与普通业务账号不同
自增改造使用序列或 identity 列替代 AUTO_INCREMENT
应用侧JDBC 驱动类与连接串同步替换

典型使用场景

  • 存量 MySQL 业务迁移到金仓,先梳理 SQL 中不兼容的语法清单
  • 表结构改造:自增主键、字符集与排序规则、类型长度统一规划
  • 应用连接层改造:替换驱动与连接串,核对事务与隔离级别设置
  • 迁移后回归测试:重点覆盖分页、聚集、日期时间与大小写敏感查询
  • 排查中文排序异常:确认目标库编码与排序规则配置
  • 性能对比:同一批查询在两侧执行,确认索引使用情况符合预期

常见差异处理

常见差异处理
# 自增:MySQL AUTO_INCREMENT → 金仓序列或 identity
# CREATE TABLE t (id bigserial PRIMARY KEY, name text);
# 分页:使用标准写法,注意 OFFSET 与 LIMIT 的顺序
# SELECT * FROM t ORDER BY id LIMIT 10 OFFSET 20;
# 反引号换双引号或直接不加引号(未加引号会按小写折叠)
# SELECT "name" FROM t;
# 连接与验证
./ksql -U system -p 54321 -d test -c '\dt'                    # 列出表
./ksql -U system -p 54321 -d test -c 'SELECT count(*) FROM t;'  # 核对行数
./ksql -U system -p 54321 -d test -c 'SELECT version();'        # 确认版本

MySQL 与金仓差异对照

主题MySQL 习惯写法金仓侧处理
标识符引号反引号包名双引号或不加引号
大小写表名大小写依赖系统设置未加引号按小写折叠,需回归验证
自增主键AUTO_INCREMENT序列或 identity 列
分页LIMIT 数值, 偏移LIMIT 与 OFFSET 标准写法
布尔与日期tinyint 表示布尔使用布尔类型或明确的数值类型
字符集与排序规则影响中文排序与比较结果,应在迁移前统一规划,而不是迁移后逐个业务调整;上线前准备中文排序的回归用例更容易发现配置问题。
只换数据库不换驱动与连接串是半截工程:应用仍使用 MySQL 协议与驱动时连接会直接失败,改造清单里必须包含应用侧的驱动版本与连接参数。

易错点

  • 忽略大小写语义差异,迁移后过滤与建表语句结果不一致,需逐条回归验证
  • 自增改序列时未同步调整应用取值逻辑,高并发下产生主键冲突
  • 连接串与驱动未同步替换,应用连接失败却先怀疑数据库侧配置
  • 中文排序规则未规划,报表顺序变化被当作业务缺陷处理,排查方向偏离

数据来源与参考

  • 人大金仓官方迁移文档(公开资料)
  • PostgreSQL 官方文档(对照参考)
​‌‌​​‌​​​‌‌​‌‌‌‌​‌‌​​​‌‌​‌‌‌​​‌‌​​‌​‌‌‌​​‌‌‌​​​‌​‌‌​‌​​‌​‌‌‌​​​‌​‌‌​‌​​‌​‌‌​​​‌‌​‌‌‌​‌​​​‌‌​‌‌‌‌​​‌​‌‌‌​​‌‌​​​‌‌​‌‌​‌‌‌‌​‌‌​‌‌​‌