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

文章目录

写在前面

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

咱们先准备准备

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

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

第一步:检查一下家底

1.1 看看Java环境够不够用

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

cmd 复制代码
java -version

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

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

2.1 先了解一下MySQL里有啥

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

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 = '你的数据库名';

2.2 给新家KingbaseES腾个地方

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

sql 复制代码
-- 建个新数据库
CREATE DATABASE demo;

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

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

第三步:启动搬家工具KDTS

3.1 把KDTS叫醒

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

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

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

3.2 登录进去

用默认账号进去看看:

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


3.3 告诉工具数据库在哪儿

先配置MySQL这边

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

把MySQL的信息填进去:

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


再配置KingbaseES那边

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

把KingbaseES的信息也填上:

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


第四步:开始安排搬家

4.1 创建搬家任务

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

4.2 详细安排怎么搬

选好搬家的起点和终点

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

决定搬哪些东西

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

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

精确选择搬家清单

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

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

性能调优

最后一步可以设置:

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



第五步:正式开搬

5.1 按下启动按钮

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

5.2 实时监控搬家进度

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

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


5.3 遇到问题不要慌

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

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

搬家大功告成

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

相关推荐
技术长镜头8 分钟前
别再只说“走 B+Tree”:一条 SQL 在 InnoDB 中的完整寻址过程
后端·mysql
倒流时光三十年14 分钟前
第六阶段 57 · ES|QL 与 SQL API(用 SQL 查 ES)
数据库·sql·elasticsearch
努力进修1 小时前
“数据心脏” 驱动能源自主:国产数据库支撑 Cemsol 实现固井全流程数字化闭环
数据库·人工智能·能源
vHelios1 小时前
SQL不会写?不会找关联表?复杂SQL语句编写逻辑实现思路请查收✉
数据库·sql
DB哥讲数据库2 小时前
【ClickHouse安装教程】从零开始部署高性能列式数据库(附ClickHouse安装包)
数据库·clickhouse
TDengine (老段)2 小时前
TDengine 第三方工具 — Telegraf、Kafka Connect、Flink、Spark
大数据·数据库·物联网·flink·kafka·时序数据库·tdengine
小白勇闯网安圈11 小时前
Django 响应对象、文件上传与类视图
数据库·django·sqlite
努力的小雨12 小时前
同一份 SQL 跑多套环境:Ksql 变量怎么用才安全
数据库
科技绘图12 小时前
快鲸GEO vs 传统AI搜索优化:全链路自动化与高效内容生产在转化闭环上的对比
数据库·人工智能·自动化
ltl12 小时前
数据库作为 LLM 记忆体:语义缓存、RAG 与一致性
数据库