日韩性视频-久久久蜜桃-www中文字幕-在线中文字幕av-亚洲欧美一区二区三区四区-撸久久-香蕉视频一区-久久无码精品丰满人妻-国产高潮av-激情福利社-日韩av网址大全-国产精品久久999-日本五十路在线-性欧美在线-久久99精品波多结衣一区-男女午夜免费视频-黑人极品ⅴideos精品欧美棵-人人妻人人澡人人爽精品欧美一区-日韩一区在线看-欧美a级在线免费观看

歡迎訪問 生活随笔!

生活随笔

當(dāng)前位置: 首頁 > 运维知识 > 数据库 >内容正文

数据库

数据库中间件MyCAT源码分析:调试环境搭建

發(fā)布時(shí)間:2025/3/20 数据库 22 豆豆
生活随笔 收集整理的這篇文章主要介紹了 数据库中间件MyCAT源码分析:调试环境搭建 小編覺得挺不錯(cuò)的,現(xiàn)在分享給大家,幫大家做個(gè)參考.

???關(guān)注微信公眾號(hào):【芋艿的后端小屋】有福利:

  • RocketMQ / MyCAT / Sharding-JDBC 所有源碼分析文章列表
  • RocketMQ / MyCAT / Sharding-JDBC 中文注釋源碼 GitHub 地址
  • 您對(duì)于源碼的疑問每條留言將得到認(rèn)真回復(fù)。甚至不知道如何讀源碼也可以請(qǐng)教噢
  • 新的源碼解析文章實(shí)時(shí)收到通知。每周更新一篇左右

    • 1. 依賴工具
    • 2. 源碼拉取
    • 3. 數(shù)據(jù)庫配置
    • 4. MyCat 配置
    • 5. MyCAT 啟動(dòng)
    • 6. MyCAT 測(cè)試
    • 7. 交流

    1. 依賴工具

    • Maven
    • Git
    • JDK
    • MySQL
    • IntelliJ IDEA

    2. 源碼拉取

    從官方倉庫 github.com/MyCATApache… Fork 出屬于自己的倉庫。為什么要 Fork ?既然開始閱讀、調(diào)試源碼,我們可能會(huì)寫一些注釋,有了自己的倉庫,可以進(jìn)行自由的提交。?

    使用 IntelliJ IDEA 從 Fork 出來的倉庫拉取代碼。拉取完成后,Maven 會(huì)下載依賴包,可能會(huì)花費(fèi)一些時(shí)間,耐心等待下。

    3. 數(shù)據(jù)庫配置

    我們要搭建的是非分片表的調(diào)試環(huán)境,需要?jiǎng)?chuàng)建一個(gè)數(shù)據(jù)庫和表:

  • 創(chuàng)建數(shù)據(jù)庫:db01 。
  • 創(chuàng)建數(shù)據(jù)庫表:travelrecord 。
  • CREATE TABLE `travelrecord` (`id` bigint(20) NOT NULL AUTO_INCREMENT,`name` varchar(255) CHARACTER SET latin1 DEFAULT NULL,PRIMARY KEY (`id`) ) ENGINE=InnoDB AUTO_INCREMENT=1 DEFAULT CHARSET=utf8 COLLATE=utf8_bin復(fù)制代碼

    4. MyCAT 配置

    為了避免對(duì)實(shí)現(xiàn)源碼產(chǎn)生影響,我們選擇對(duì) test 目錄做變更。

    1、在 resources 目錄下新建文件夾 backups ,將原 resources 下的所有文件移到 backups 下,這樣我們的環(huán)境就干干凈了。
    2、在 resources 目錄下新建 schema.xml 文件,配置 MyCAT 的邏輯庫、表、數(shù)據(jù)節(jié)點(diǎn)、數(shù)據(jù)源。

    <?xml version="1.0"?> <!DOCTYPE mycat:schema SYSTEM "schema.dtd"> <mycat:schema xmlns:mycat="http://io.mycat/"><schema name="dbtest" checkSQLschema="true" sqlMaxLimit="100"><table name="travelrecord" dataNode="dn1" autoIncrement="true" primaryKey="id" /></schema><dataNode name="dn1" dataHost="localhost1" database="db1" /><dataHost name="localhost1" maxCon="1000" minCon="10" balance="0"writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100"><heartbeat>select user()</heartbeat><writeHost host="hostM1" url="127.0.0.1:33061" user="root" password="123456"> <!-- ?????? url、user、password 設(shè)置成你的數(shù)據(jù)庫 --></writeHost></dataHost></mycat:schema>復(fù)制代碼

    3、在 resources 目錄下新建 server.xml 文件,配置 MyCAT 系統(tǒng)配置。

    <?xml version="1.0" encoding="UTF-8"?> <!DOCTYPE mycat:server SYSTEM "server.dtd"> <mycat:server xmlns:mycat="http://io.mycat/"><system><property name="nonePasswordLogin">0</property> <!-- 0為需要密碼登陸、1為不需要密碼登陸 ,默認(rèn)為0,設(shè)置為1則需要指定默認(rèn)賬戶--><property name="useHandshakeV10">1</property><property name="useSqlStat">0</property> <!-- 1為開啟實(shí)時(shí)統(tǒng)計(jì)、0為關(guān)閉 --><property name="useGlobleTableCheck">0</property> <!-- 1為開啟全加班一致性檢測(cè)、0為關(guān)閉 --><property name="sequnceHandlerType">2</property><property name="processorBufferPoolType">0</property><property name="handleDistributedTransactions">0</property><property name="useOffHeapForMerge">1</property><property name="memoryPageSize">64k</property><property name="spillsFileBufferSize">1k</property><property name="useStreamOutput">0</property><property name="systemReserveMemorySize">384m</property><property name="useZKSwitch">false</property></system><user name="root" defaultAccount="true"><property name="password">123456</property><property name="schemas">dbtest</property></user></mycat:server>復(fù)制代碼

    5. MyCAT 啟動(dòng)

    1、在 java 目錄下新建 debugger 包,和原先已存在的包做區(qū)分。
    2、在 debbuger 包下新建 MycatStartupTest.java :

    package debugger;import io.mycat.MycatStartup;/*** {@link io.mycat.MycatStartup}測(cè)試** Created by yunai on 2017/5/22.*/ public class MycatStartupTest {public static void main(String[] args) {MycatStartup.main(args);}}復(fù)制代碼

    3、運(yùn)行 MycatStartupTest.java ,當(dāng)看到輸出日志 MyCAT Server startup successfully. see logs in logs/mycat.log 即為啟動(dòng)成功。

    截止目前,test 目錄如下:

    test目錄.png

    6. MyCAT 測(cè)試

    調(diào)試環(huán)境已經(jīng)搭建完成,我們看看是否正確。

    使用 MySQL 客戶端連接 MyCAT :

    • HOST :127.0.0.1
    • PORT :8066
    • USERNAME :root
    • PASSWORD :123456
    mysql> insert into travelrecord(name) values ('haha'); Query OK, 1 rows affected (0.01 sec)mysql> select * from travelrecord; +--------------------+------+ | id | name | +--------------------+------+ | 866707181398003712 | haha | +--------------------+------+ 1 rows in set (0.05 sec)復(fù)制代碼

    成功。???

    7. 交流

    感謝閱讀、收藏、關(guān)注。
    知其然知其所以然。學(xué)習(xí) MyCAT 會(huì)是一段很愉快的旅程。如果有你的交流,相信會(huì)更加愉快。歡迎添加微信:wangwenbin-server 進(jìn)行探討。

    總結(jié)

    以上是生活随笔為你收集整理的数据库中间件MyCAT源码分析:调试环境搭建的全部?jī)?nèi)容,希望文章能夠幫你解決所遇到的問題。

    如果覺得生活随笔網(wǎng)站內(nèi)容還不錯(cuò),歡迎將生活随笔推薦給好友。