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

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

2.2 給新家KingbaseES騰個(gè)地方
接下來(lái)在KingbaseES里準(zhǔn)備一個(gè)新窩:
-- 建個(gè)新數(shù)據(jù)庫(kù) CREATE DATABASE demo; -- 創(chuàng)建個(gè)用戶(hù) CREATE USER mysql_user WITH PASSWORD 'Password123!'; -- 給用戶(hù)權(quán)限 GRANT ALL PRIVILEGES ON DATABASE demo TO mysql_user;

第三步:?jiǎn)?dòng)搬家工具KDTS
3.1 把KDTS叫醒
找到KDTS裝在哪兒,然后啟動(dòng)它:
cd "C:\Program Files\Kingbase\ES\V9\ClientTools\guitools\KDts\KDTS-WEB" bin\startup.bat

啟動(dòng)成功后,打開(kāi)瀏覽器輸入:http://localhost:54523/

3.2 登錄進(jìn)去
用默認(rèn)賬號(hào)進(jìn)去看看:
- 用戶(hù)名:kingbase
- 密碼:Kb_DI@2019


3.3 告訴工具數(shù)據(jù)庫(kù)在哪兒
先配置MySQL這邊
點(diǎn)擊"數(shù)據(jù)源管理" → “源數(shù)據(jù)庫(kù)” → “+ 新建”

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


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

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


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

4.2 詳細(xì)安排怎么搬
選好搬家的起點(diǎn)和終點(diǎn)
- 任務(wù)名稱(chēng):qianyi(給任務(wù)起個(gè)名字,方便記?。?/li>
- 源數(shù)據(jù)庫(kù):MySQL_Source(選剛才配置的MySQL連接)
- 目標(biāo)數(shù)據(jù)庫(kù):KingbaseES_Target(選剛才配置的KingbaseES連接)

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

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

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



第五步:正式開(kāi)搬
5.1 按下啟動(dòng)按鈕
一切準(zhǔn)備就緒,點(diǎn)擊"啟動(dòng)"按鈕,搬家正式開(kāi)始!

5.2 實(shí)時(shí)監(jiān)控搬家進(jìn)度
搬家過(guò)程中,你可以隨時(shí)看到:
- 現(xiàn)在搬到哪一步了
- 已經(jīng)搬完多少?gòu)埍?/li>
- 整體進(jìn)度百分比
- 大概還要多長(zhǎng)時(shí)間


5.3 遇到問(wèn)題不要慌
搬家過(guò)程中可能會(huì)碰到這些小狀況:
- 中文亂碼問(wèn)題:記得檢查字符集設(shè)置對(duì)不對(duì)
- 時(shí)間格式問(wèn)題:MySQL和KingbaseES的時(shí)間類(lèi)型有點(diǎn)不一樣,需要注意轉(zhuǎn)換
- 大小寫(xiě)敏感問(wèn)題:兩個(gè)數(shù)據(jù)庫(kù)對(duì)大小寫(xiě)的要求不太一樣,要特別留意
搬家大功告成
太好了!經(jīng)過(guò)一番努力,咱們的數(shù)據(jù)搬家工作圓滿(mǎn)完成了?,F(xiàn)在你的應(yīng)用程序可以順利地從MySQL切換到咱們的國(guó)產(chǎn)數(shù)據(jù)庫(kù)KingbaseES了。這樣一來(lái),不僅數(shù)據(jù)更安全,還支持了國(guó)產(chǎn)軟件的發(fā)展,一舉兩得!
以上就是MySQL數(shù)據(jù)庫(kù)遷移到KingbaseES的完整指南的詳細(xì)內(nèi)容,更多關(guān)于MySQL遷移到KingbaseES的資料請(qǐng)關(guān)注腳本之家其它相關(guān)文章!
相關(guān)文章
mysql?樂(lè)觀(guān)鎖和悲觀(guān)鎖的具體使用
本文主要介紹了mysql?樂(lè)觀(guān)鎖和悲觀(guān)鎖的具體使用,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2023-01-01
MySQL索引失效的幾種常見(jiàn)場(chǎng)景詳解
索引失效指的是在進(jìn)行查詢(xún)操作時(shí),本應(yīng)該使用索引來(lái)提升查詢(xún)效率的場(chǎng)景下,數(shù)據(jù)庫(kù)沒(méi)有利用索引,而是采用了全表掃描的方式,這會(huì)大大增加查詢(xún)時(shí)間和系統(tǒng)負(fù)擔(dān),這篇文章主要介紹了MySQL索引失效的幾種常見(jiàn)場(chǎng)景的相關(guān)資料,需要的朋友可以參考下2025-09-09
mysql group by 多個(gè)行轉(zhuǎn)換為一個(gè)字段
本文主要介紹了mysql group by 多個(gè)行轉(zhuǎn)換為一個(gè)字段,可以使用聚合函數(shù)GROUP_CONCAT()函數(shù),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2025-08-08
MySQL表字段時(shí)間設(shè)置默認(rèn)值
很多人可能會(huì)把日期類(lèi)型的字段的類(lèi)型設(shè)置為 date或者 datetime,但是這些不是當(dāng)前時(shí)間,那么如何把字段時(shí)間設(shè)置成當(dāng)前時(shí)間,本文就具體來(lái)介紹一下2021-05-05
MySQL聯(lián)表查詢(xún)基本操作之left-join常見(jiàn)的坑
這篇文章主要給大家介紹了關(guān)于MySQL聯(lián)表查詢(xún)基本操作之left-join的相關(guān)資料,文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家學(xué)習(xí)或者使用MySQL具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-05-05
SQL中CONVERT轉(zhuǎn)換函數(shù)的簡(jiǎn)單使用方法
CONVERT()函數(shù)對(duì)于簡(jiǎn)單類(lèi)型轉(zhuǎn)換,CONVERT()函數(shù)和CAST()函數(shù)的功能相同,只是語(yǔ)法不同,下面這篇文章主要給大家介紹了關(guān)于SQL中CONVERT轉(zhuǎn)換函數(shù)的簡(jiǎn)單使用方法,需要的朋友可以參考下2024-01-01
MySQL常見(jiàn)內(nèi)置函數(shù)以及其使用教程
MySQL數(shù)據(jù)庫(kù)中提供了很豐富的函數(shù),MySQL函數(shù)包括數(shù)學(xué)函數(shù)、字符串函數(shù)、日期和時(shí)間函數(shù)、條件判斷函數(shù)、系統(tǒng)信息函數(shù)、加密函數(shù)、格式化函數(shù)等,下面這篇文章主要給大家介紹了關(guān)于MySQL常見(jiàn)內(nèi)置函數(shù)以及其使用的相關(guān)資料,需要的朋友可以參考下2022-12-12

