文章目录
写在前面
今天咱们来聊聊一个很实用的话题——怎么把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环境变量,不然工具找不到
第二步:摸摸底,看看要搬多少东西
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 = '你的数据库名';
2.2 给新家KingbaseES腾个地方
接下来在KingbaseES里准备一个新窝:
-- 建个新数据库
CREATE DATABASE demo;
-- 创建个用户
CREATE USER mysql_user WITH PASSWORD 'Password123!';
-- 给用户权限
GRANT ALL PRIVILEGES ON DATABASE demo TO mysql_user;
第三步:启动搬家工具KDTS
3.1 把KDTS叫醒
找到KDTS装在哪儿,然后启动它:
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了。这样一来,不仅数据更安全,还支持了国产软件的发展,一举两得!