MySQL数据库迁移到KingbaseES完整指南

发布于:2025-08-31 ⋅ 阅读:(25) ⋅ 点赞:(0)

写在前面

今天咱们来聊聊一个很实用的话题——怎么把MySQL数据库搬到国产数据库KingbaseES上。别看这事儿听起来挺复杂,其实用对了工具,操作起来还是挺简单的。我会一步一步带着大家走,保证你看完就能上手。

咱们先准备准备

开始之前,先看看咱们需要什么:

  • 原来的数据库:MySQL 5.7 (Windows版本)
  • 要搬到的新家:KingbaseES V9 (Windows版本)
  • 搬家工具:KDTS(这个工具很好用)
  • 系统环境:Windows 10或者11都行

第一步:检查一下家底

1.1 看看Java环境够不够用

KDTS这个工具有点挑剔,最低需要JDK 11的版本才肯干活。咱们先检查一下:

java -version

要是没装或者版本太老,赶紧去下载一个OpenJDK 11:

  • 下载地址:https://jdk.java.net/archive/
  • 装完别忘了设置JAVA_HOME环境变量,不然工具找不到

JDK环境配置

第二步:摸摸底,看看要搬多少东西

2.1 先了解一下MySQL里有啥

搬家之前,咱们得知道原来的数据库里都有什么宝贝,跑几个SQL看看:

-- 看看MySQL版本
SELECT VERSION();

-- 算算数据库有多大
SELECT 
    table_schema AS 'Database',
    ROUND(SUM(data_length + index_length) / 1024 / 1024, 2) AS 'Size (MB)'
FROM information_schema.tables 
GROUP BY table_schema;

-- 数数有多少张表
SELECT COUNT(*) as table_count FROM information_schema.tables 
WHERE table_schema = '你的数据库名';

MySQL信息查询

2.2 给新家KingbaseES腾个地方

接下来在KingbaseES里准备一个新窝:

-- 建个新数据库
CREATE DATABASE demo;

-- 创建个用户
CREATE USER mysql_user WITH PASSWORD 'Password123!';

-- 给用户权限
GRANT ALL PRIVILEGES ON DATABASE demo TO mysql_user;

KingbaseES数据库准备

第三步:启动搬家工具KDTS

3.1 把KDTS叫醒

找到KDTS装在哪儿,然后启动它:

cd "C:\Program Files\Kingbase\ES\V9\ClientTools\guitools\KDts\KDTS-WEB"
bin\startup.bat

启动KDTS

启动成功后,打开浏览器输入:http://localhost:54523/

KDTS登录页面

3.2 登录进去

用默认账号进去看看:

  • 用户名:kingbase
  • 密码:Kb_DI@2019

登录KDTS
KDTS主页面

3.3 告诉工具数据库在哪儿

先配置MySQL这边

点击"数据源管理" → “源数据库” → “+ 新建”

新建源数据库

把MySQL的信息填进去:

  • 连接名称:MySQL_Source(随便起个名字)
  • 数据库类型:选MySQL
  • 数据库版本:5.7
  • 服务器地址:localhost(要是MySQL在别的机器上就填那个IP)
  • 服务器端口:3306
  • 用户名:root(或者其他有权限的用户)
  • 密码:你的MySQL密码
  • 数据库:要搬的那个数据库名字

MySQL连接配置
MySQL连接测试

再配置KingbaseES那边

点击"数据源管理" → “目标数据库” → “+ 新建”

新建目标数据库

把KingbaseES的信息也填上:

  • 连接名称:KingbaseES_Target(也是随便起名)
  • 数据库类型:选KINGBASE
  • 数据库版本:V9
  • 服务器地址:localhost(同样,别的机器就填IP)
  • 服务器端口:54321
  • 用户名:mysql_user(刚才创建的那个用户)
  • 密码:Password123!
  • 数据库:demo(前面准备的新窝)

KingbaseES连接配置
KingbaseES连接测试

第四步:开始安排搬家

4.1 创建搬家任务

点击"迁移任务管理" → “迁移任务” → “+ 新建”

新建迁移任务

4.2 详细安排怎么搬

选好搬家的起点和终点

  • 任务名称:qianyi(给任务起个名字,方便记住)
  • 源数据库:MySQL_Source(选刚才配置的MySQL连接)
  • 目标数据库:KingbaseES_Target(选刚才配置的KingbaseES连接)

选择数据源

决定搬哪些东西

根据实际需要,选择要搬的内容:

  • 表结构和数据(这个肯定要选)
  • 索引(提高查询速度的)
  • 主键约束(保证数据唯一性)
  • 外键约束(表之间的关系)
  • 视图(虚拟表)
  • 存储过程(数据库里的小程序)
  • 函数(自定义函数)

选择迁移对象类型

精确选择搬家清单

这一步可以更细致地设置:

  • 具体搬哪些表和对象
  • 字段类型怎么过滤
  • 字段名字怎么过滤
  • 表的搬家优先级
  • 用户权限怎么对应
  • 表空间怎么分配
  • 表名要不要改
  • 字段名要不要调整

选择具体迁移对象

性能调优

最后一步可以设置:

  • 搬家策略(怎么搬最快最稳)
  • 数据类型转换规则(MySQL和KingbaseES类型不完全一样)
  • 线程配置(多线程并行搬家,提高效率)

迁移配置
数据类型映射
线程配置

第五步:正式开搬

5.1 按下启动按钮

一切准备就绪,点击"启动"按钮,搬家正式开始!

启动迁移

5.2 实时监控搬家进度

搬家过程中,你可以随时看到:

  • 现在搬到哪一步了
  • 已经搬完多少张表
  • 整体进度百分比
  • 大概还要多长时间

迁移进度监控
迁移完成

5.3 遇到问题不要慌

搬家过程中可能会碰到这些小状况:

  • 中文乱码问题:记得检查字符集设置对不对
  • 时间格式问题:MySQL和KingbaseES的时间类型有点不一样,需要注意转换
  • 大小写敏感问题:两个数据库对大小写的要求不太一样,要特别留意

搬家大功告成

太好了!经过一番努力,咱们的数据搬家工作圆满完成了。现在你的应用程序可以顺利地从MySQL切换到咱们的国产数据库KingbaseES了。这样一来,不仅数据更安全,还支持了国产软件的发展,一举两得!