当前位置: 首页 > java >正文

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

文章目录

  • 写在前面
  • 咱们先准备准备
  • 第一步:检查一下家底
    • 1.1 看看Java环境够不够用
  • 第二步:摸摸底,看看要搬多少东西
    • 2.1 先了解一下MySQL里有啥
    • 2.2 给新家KingbaseES腾个地方
  • 第三步:启动搬家工具KDTS
    • 3.1 把KDTS叫醒
    • 3.2 登录进去
    • 3.3 告诉工具数据库在哪儿
      • 先配置MySQL这边
      • 再配置KingbaseES那边
  • 第四步:开始安排搬家
    • 4.1 创建搬家任务
    • 4.2 详细安排怎么搬
      • 选好搬家的起点和终点
      • 决定搬哪些东西
      • 精确选择搬家清单
      • 性能调优
  • 第五步:正式开搬
    • 5.1 按下启动按钮
    • 5.2 实时监控搬家进度
    • 5.3 遇到问题不要慌
  • 搬家大功告成

写在前面

今天咱们来聊聊一个很实用的话题——怎么把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了。这样一来,不仅数据更安全,还支持了国产软件的发展,一举两得!

http://www.xdnf.cn/news/19260.html

相关文章:

  • 类和反射的机制
  • Redis桌面客户端
  • Windows驱动开发与双机调试环境[驱动开发环境配置高阶]
  • 使用 Ansible 和 Azure Pipelines 增强您的 DevOps
  • Qt实战:如何打开摄像头并实现视频的实时预览
  • 2025年09月计算机二级Java选择题每日一练——第十二期
  • macOs上ffmpeg带入libx264库交叉编译
  • 【龙泽科技】汽车电气故障诊断仿真教学软件【迈腾380TSI】
  • WebGIS视角:体感温度实证,哪座“火炉”火力全开?
  • centos7中MySQL 5.7.32 到 5.7.44 升级指南:基于官方二进制包的原地替换式升级
  • xAI发布全新编码模型 grok‑code‑fast‑1!
  • Kafka 消费模型
  • Qt 窗口 - 3
  • 操作系统-虚拟内存篇
  • 机器学习中的欠拟合与过拟合
  • 2025年如何批量下载雪球帖子和文章导出pdf?
  • 每日Java并发面试系列(5):基础篇(线程池的核心原理是什么、线程池大小设置为多少更合适、线程池哪几种类型?ThreadLocal为什么会导致内存泄漏?)
  • web渗透PHP反序列化漏洞
  • 设计模式 - 静态工厂模式 + 策略模式,
  • 【一】Django框架版本介绍
  • k8s 定时任务需求模板
  • 手动安装的node到nvm吧版本管理的过程。
  • GaussDB生产扩容引起的PANIC问题处理案例
  • HarmonyOS元服务开发
  • HarmonyOS三方库的使用
  • 计算机毕业设计 java 在线学习系统 基于 Java 的在线教育平台 Java 开发的学习管理系统
  • MongoDB 源码编译与调试:深入理解存储引擎设计 内容详细
  • 【办公类-39-06】20250830通义万相水果图(万相2.1专业Q版线描风格+万相专业2.2默认简笔画效果)
  • 淘宝利用商品关键词获取商品信息指南
  • GRPO(组相对策略优化):大模型强化学习的高效进化