MySQL數(shù)據(jù)庫(kù)遷移到KingbaseES的完整指南
寫(xiě)在前面
今天咱們來(lái)聊聊一個(gè)很實(shí)用的話題——怎么把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è)用戶 CREATE USER mysql_user WITH PASSWORD 'Password123!'; -- 給用戶權(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)去看看:
- 用戶名:kingbase
- 密碼:Kb_DI@2019


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

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


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

把KingbaseES的信息也填上:
- 連接名稱:KingbaseES_Target(也是隨便起名)
- 數(shù)據(jù)庫(kù)類型:選KINGBASE
- 數(shù)據(jù)庫(kù)版本:V9
- 服務(wù)器地址:localhost(同樣,別的機(jī)器就填I(lǐng)P)
- 服務(wù)器端口:54321
- 用戶名:mysql_user(剛才創(chuàng)建的那個(gè)用戶)
- 密碼: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ù)名稱: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è)肯定要選)
- 索引(提高查詢速度的)
- 主鍵約束(保證數(shù)據(jù)唯一性)
- 外鍵約束(表之間的關(guān)系)
- 視圖(虛擬表)
- 存儲(chǔ)過(guò)程(數(shù)據(jù)庫(kù)里的小程序)
- 函數(shù)(自定義函數(shù))

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

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



第五步:正式開(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í)間類型有點(diǎn)不一樣,需要注意轉(zhuǎn)換
- 大小寫(xiě)敏感問(wèn)題:兩個(gè)數(shù)據(jù)庫(kù)對(duì)大小寫(xiě)的要求不太一樣,要特別留意
搬家大功告成
太好了!經(jīng)過(guò)一番努力,咱們的數(shù)據(jù)搬家工作圓滿完成了。現(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)文章
SQL聯(lián)合查詢inner join、outer join和cross join的區(qū)別詳解
今天小編就為大家分享一篇關(guān)于SQL聯(lián)合查詢inner join、outer join和cross join的區(qū)別詳解,小編覺(jué)得內(nèi)容挺不錯(cuò)的,現(xiàn)在分享給大家,具有很好的參考價(jià)值,需要的朋友一起跟隨小編來(lái)看看吧2019-03-03
MYSQL根據(jù)分組獲取組內(nèi)多條數(shù)據(jù)中符合條件的一條(實(shí)例詳解)
這篇文章主要介紹了MYSQL根據(jù)分組獲取組內(nèi)多條數(shù)據(jù)中符合條件的一條,本文通過(guò)實(shí)例代碼給大家介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或工作具有一定的參考借鑒價(jià)值,需要的朋友可以參考下2023-06-06
MySql使用mysqldump 導(dǎo)入與導(dǎo)出方法總結(jié)
這篇文章主要介紹了MySql使用mysqldump 導(dǎo)入與導(dǎo)出方法總結(jié),文中通過(guò)示例代碼介紹的非常詳細(xì),對(duì)大家的學(xué)習(xí)或者工作具有一定的參考學(xué)習(xí)價(jià)值,需要的朋友們下面隨著小編來(lái)一起學(xué)習(xí)學(xué)習(xí)吧2020-09-09
MySQL 一次執(zhí)行多條語(yǔ)句的實(shí)現(xiàn)及常見(jiàn)問(wèn)題
通常情況MySQL出于安全考慮不允許一次執(zhí)行多條語(yǔ)句(但也不報(bào)錯(cuò),很讓人郁悶)。2009-08-08

