MySQL數(shù)據(jù)庫遷移到KingbaseES的完整指南
寫在前面
今天咱們來聊聊一個很實用的話題——怎么把MySQL數(shù)據(jù)庫搬到國產(chǎn)數(shù)據(jù)庫KingbaseES上。別看這事兒聽起來挺復(fù)雜,其實用對了工具,操作起來還是挺簡單的。我會一步一步帶著大家走,保證你看完就能上手。
咱們先準備準備
開始之前,先看看咱們需要什么:
- 原來的數(shù)據(jù)庫:MySQL 5.7 (Windows版本)
- 要搬到的新家:KingbaseES V9 (Windows版本)
- 搬家工具:KDTS(這個工具很好用)
- 系統(tǒng)環(huán)境:Windows 10或者11都行
第一步:檢查一下家底
1.1 看看Java環(huán)境夠不夠用
KDTS這個工具有點挑剔,最低需要JDK 11的版本才肯干活。咱們先檢查一下:
java -version
要是沒裝或者版本太老,趕緊去下載一個OpenJDK 11:
- 下載地址:https://jdk.java.net/archive/
- 裝完別忘了設(shè)置JAVA_HOME環(huán)境變量,不然工具找不到

第二步:摸摸底,看看要搬多少東西
2.1 先了解一下MySQL里有啥
搬家之前,咱們得知道原來的數(shù)據(jù)庫里都有什么寶貝,跑幾個SQL看看:
-- 看看MySQL版本
SELECT VERSION();
-- 算算數(shù)據(jù)庫有多大
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;
-- 數(shù)數(shù)有多少張表
SELECT COUNT(*) as table_count FROM information_schema.tables
WHERE table_schema = '你的數(shù)據(jù)庫名';

2.2 給新家KingbaseES騰個地方
接下來在KingbaseES里準備一個新窩:
-- 建個新數(shù)據(jù)庫 CREATE DATABASE demo; -- 創(chuàng)建個用戶 CREATE USER mysql_user WITH PASSWORD 'Password123!'; -- 給用戶權(quán)限 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 告訴工具數(shù)據(jù)庫在哪兒
先配置MySQL這邊
點擊"數(shù)據(jù)源管理" → “源數(shù)據(jù)庫” → “+ 新建”

把MySQL的信息填進去:
- 連接名稱:MySQL_Source(隨便起個名字)
- 數(shù)據(jù)庫類型:選MySQL
- 數(shù)據(jù)庫版本:5.7
- 服務(wù)器地址:localhost(要是MySQL在別的機器上就填那個IP)
- 服務(wù)器端口:3306
- 用戶名:root(或者其他有權(quán)限的用戶)
- 密碼:你的MySQL密碼
- 數(shù)據(jù)庫:要搬的那個數(shù)據(jù)庫名字


再配置KingbaseES那邊
點擊"數(shù)據(jù)源管理" → “目標數(shù)據(jù)庫” → “+ 新建”

把KingbaseES的信息也填上:
- 連接名稱:KingbaseES_Target(也是隨便起名)
- 數(shù)據(jù)庫類型:選KINGBASE
- 數(shù)據(jù)庫版本:V9
- 服務(wù)器地址:localhost(同樣,別的機器就填I(lǐng)P)
- 服務(wù)器端口:54321
- 用戶名:mysql_user(剛才創(chuàng)建的那個用戶)
- 密碼:Password123!
- 數(shù)據(jù)庫:demo(前面準備的新窩)


第四步:開始安排搬家
4.1 創(chuàng)建搬家任務(wù)
點擊"遷移任務(wù)管理" → “遷移任務(wù)” → “+ 新建”

4.2 詳細安排怎么搬
選好搬家的起點和終點
- 任務(wù)名稱:qianyi(給任務(wù)起個名字,方便記住)
- 源數(shù)據(jù)庫:MySQL_Source(選剛才配置的MySQL連接)
- 目標數(shù)據(jù)庫:KingbaseES_Target(選剛才配置的KingbaseES連接)

決定搬哪些東西
根據(jù)實際需要,選擇要搬的內(nèi)容:
- 表結(jié)構(gòu)和數(shù)據(jù)(這個肯定要選)
- 索引(提高查詢速度的)
- 主鍵約束(保證數(shù)據(jù)唯一性)
- 外鍵約束(表之間的關(guān)系)
- 視圖(虛擬表)
- 存儲過程(數(shù)據(jù)庫里的小程序)
- 函數(shù)(自定義函數(shù))

精確選擇搬家清單
這一步可以更細致地設(shè)置:
- 具體搬哪些表和對象
- 字段類型怎么過濾
- 字段名字怎么過濾
- 表的搬家優(yōu)先級
- 用戶權(quán)限怎么對應(yīng)
- 表空間怎么分配
- 表名要不要改
- 字段名要不要調(diào)整

性能調(diào)優(yōu)
最后一步可以設(shè)置:
- 搬家策略(怎么搬最快最穩(wěn))
- 數(shù)據(jù)類型轉(zhuǎn)換規(guī)則(MySQL和KingbaseES類型不完全一樣)
- 線程配置(多線程并行搬家,提高效率)



第五步:正式開搬
5.1 按下啟動按鈕
一切準備就緒,點擊"啟動"按鈕,搬家正式開始!

5.2 實時監(jiān)控搬家進度
搬家過程中,你可以隨時看到:
- 現(xiàn)在搬到哪一步了
- 已經(jīng)搬完多少張表
- 整體進度百分比
- 大概還要多長時間


5.3 遇到問題不要慌
搬家過程中可能會碰到這些小狀況:
- 中文亂碼問題:記得檢查字符集設(shè)置對不對
- 時間格式問題:MySQL和KingbaseES的時間類型有點不一樣,需要注意轉(zhuǎn)換
- 大小寫敏感問題:兩個數(shù)據(jù)庫對大小寫的要求不太一樣,要特別留意
搬家大功告成
太好了!經(jīng)過一番努力,咱們的數(shù)據(jù)搬家工作圓滿完成了。現(xiàn)在你的應(yīng)用程序可以順利地從MySQL切換到咱們的國產(chǎn)數(shù)據(jù)庫KingbaseES了。這樣一來,不僅數(shù)據(jù)更安全,還支持了國產(chǎn)軟件的發(fā)展,一舉兩得!
以上就是MySQL數(shù)據(jù)庫遷移到KingbaseES的完整指南的詳細內(nèi)容,更多關(guān)于MySQL遷移到KingbaseES的資料請關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mysql group by 多個行轉(zhuǎn)換為一個字段
本文主要介紹了mysql group by 多個行轉(zhuǎn)換為一個字段,可以使用聚合函數(shù)GROUP_CONCAT()函數(shù),文中通過示例代碼介紹的非常詳細,對大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價值,需要的朋友們下面隨著小編來一起學(xué)習(xí)學(xué)習(xí)吧2025-08-08
MySQL聯(lián)表查詢基本操作之left-join常見的坑
這篇文章主要給大家介紹了關(guān)于MySQL聯(lián)表查詢基本操作之left-join的相關(guān)資料,文中通過示例代碼介紹的非常詳細,對大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價值,需要的朋友們下面來一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
SQL中CONVERT轉(zhuǎn)換函數(shù)的簡單使用方法
CONVERT()函數(shù)對于簡單類型轉(zhuǎn)換,CONVERT()函數(shù)和CAST()函數(shù)的功能相同,只是語法不同,下面這篇文章主要給大家介紹了關(guān)于SQL中CONVERT轉(zhuǎn)換函數(shù)的簡單使用方法,需要的朋友可以參考下2024-01-01

