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了。这样一来,不仅数据更安全,还支持了国产软件的发展,一举两得!

相关推荐
小码农叔叔1 小时前
【AI智能体】Dify 实现自然语言转SQL操作数据库实战详解
人工智能·sql·mysql
vvilkim1 小时前
构建坚不可摧的数据堡垒:深入解析 Oracle 高可用与容灾技术体系
数据库·oracle
_風箏1 小时前
SpringBoot【集成generator】代码生成+knife4j接口文档(2种模板设置、逻辑删除、字段填充 含代码粘贴可用)保姆级教程
数据库·后端
_風箏2 小时前
SpringBoot【集成ClickHouse】clickhouse+mybatis-plus配置及使用问题说明(含建表语句、demo源码、测试说明)
数据库·后端
xcLeigh2 小时前
KingbaseES数据库:V8R3 迁移至 V9 全流程学习教程
数据库
正在走向自律2 小时前
在Ubuntu服务器上安装KingbaseES V009R002C012(Orable兼容版)数据库过程详细记录
数据库·oracle·国产数据库·kingbasees·ubuntu安装·电科金仓
没有羊的王K3 小时前
sql简单练习——随笔记
数据库·sql
运维技术小记3 小时前
4 台主机怎么搭 Greenplum 集群?3 种方案优缺点全解析,生产环境必看!
数据库
软件开发JR3 小时前
基于Spring Boot的社区团购系统的设计与实现
数据库·spring boot·后端·php
共享家95273 小时前
MySQL-视图与用户管理
数据库·mysql