日日操夜夜添-日日操影院-日日草夜夜操-日日干干-精品一区二区三区波多野结衣-精品一区二区三区高清免费不卡

公告:魔扣目錄網為廣大站長提供免費收錄網站服務,提交前請做好本站友鏈:【 網站目錄:http://www.ylptlb.cn 】, 免友鏈快審服務(50元/站),

點擊這里在線咨詢客服
新站提交
  • 網站:51998
  • 待審:31
  • 小程序:12
  • 文章:1030137
  • 會員:747

作 者:咔咔-

原文鏈接:https://www.cnblogs.com/fkaka/p/13516475.html

?

借助MyCat來實現MySQL的分庫分表落地,沒有實現過的,或者沒了解過的可以看看

?

前言

在之前寫過一篇關于mysql分庫分表的文章,那篇文章只是給大家提供了一個思路,但是回復下面有很多說是細節問題沒有提到。所以咔咔就在出了這篇文章。

本文只是針對其中的一個細節而已,比如如何落地MySQL的分庫分表,本文使用數據庫中間件MyCat來實現。

其中還有最多的回復是分庫分表后的分頁查詢如何操作,這個問題也會在后文繼續寫到。

關于MySQL分庫分表這個真正落地使用中間還有很多的問題,咔咔盡量把解決方案都提供給大家,如你有更好的實現方案,評論區見哈!

本文使用環境

  • MySQL8.0
  • centos7.3

一、MyCat安裝

避免提示廣告問題,自己去打開MyCat的官方地址去復制下載地址,這里咔咔就不提供了。

咔咔使用的虛擬機是centos7.3,需要環境的jdk已經有了,就不再寫教程了。如沒有的話,百度搜搜就可以了哈!

下圖就是安裝成功的安裝包

你們要的MyCat實現MySQL分庫分表來了

 

進行解壓:tar -zxvf Mycat-server-1.6.7.1-release-20200209222254-linux.tar.gz,解壓成功后會在目錄下存在一個mycat目錄。

二、創建一個新的MySQL用戶

需要創建一個新的MySQL用戶用來連接Mycat

以下就是創建用戶的流程

// 創建mycat用戶
CREATE USER 'mycat'@'%' IDENTIFIED BY 'mycat';
// 修改密碼
ALTER USER 'mycat'@'%' IDENTIFIED WITH mysql_native_password BY ’Fang,1996'; 
// 刷新權限
FLUSH PRIVILEGES;

三、配置MyCat

配置項一:server.xml

此處使用上邊創建的新的MySQL用戶mycat,可以管理的邏輯庫為mycat_order,對應schema.xml中的<schema name="mydatabase"

框出的來的解讀一下

第一行:name值后邊是上邊創建的MySQL用戶 第二行:是mycat用戶的密碼 第三行:是數據庫

你們要的MyCat實現MySQL分庫分表來了

 

配置項二:schema.xml

這個文件主要修改連接其他數據庫的兩個節點

使用規則是mod-long這個需要注意一下子

在這塊的配置咔咔卡了很久,下面這個是咔咔已經配置好的

你們要的MyCat實現MySQL分庫分表來了

 

配置項三:rule.xml

這里是order_id使用mod-long規則

你們要的MyCat實現MySQL分庫分表來了

 

這個修改就是你有幾個節點就寫多少即可

你們要的MyCat實現MySQL分庫分表來了

 

三、數據庫信息準備

在兩臺服務器114.55.103.25和192.168.253.129創建數據庫kaka和kaka

分別創建t_order和t_order_detail兩張表

表結構如下

CREATE TABLE `t_order_detail` (
  `od_id` int(11) NOT NULL,
  `order_id` int(11) DEFAULT NULL,
  `goods_id` int(11) DEFAULT NULL,
  `unit_price` float DEFAULT NULL,
  `qty` int(11) DEFAULT NULL,
  PRIMARY KEY (`od_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

CREATE TABLE `t_order` (
  `order_id` bagint(20) NOT NULL,
  `user_id` int(11) DEFAULT NULL,
  `pay_mode` tinyint(4) DEFAULT NULL,
  `amount` float DEFAULT NULL,
  `order_date` datetime DEFAULT NULL,
  PRIMARY KEY (`order_id`)
) ENGINE=InnoDB DEFAULT CHARSET=utf8;

四、測試連接并插入數據,查看數據分布狀態

連接:mysql -umycat -p -P8066 -h192.168.253.129 --default-auth=mysql_native_password

連接成功就可以看到我們的邏輯庫

你們要的MyCat實現MySQL分庫分表來了

 

然后添加三個數據

insert into t_order (order_id,user_id,pay_mode,amount) values (next value for MYCATSEQ_ORDER,103,1
Query OK, 1 row affected (0.01 sec)

insert into t_order (order_id,user_id,pay_mode,amount) values (next value for MYCATSEQ_ORDER,103,1
Query OK, 1 row affected (0.01 sec)

insert into t_order (order_id,user_id,pay_mode,amount) values (next value for MYCATSEQ_ORDER,103,1
Query OK, 1 row affected (0.01 sec)

這個時候我們查看一下邏輯庫的t_order數據,這里的order_id本應該是從1000開始的,之前咔咔做測試使用了一些。

你們要的MyCat實現MySQL分庫分表來了

 

這時我們在來看192.168.253.129和114.55.103.25這倆臺數據庫的數據分布

「192.168.253.129數據庫」 這個可以看到進入了兩條數據

你們要的MyCat實現MySQL分庫分表來了

 

「144.55.103.25數據庫」

這臺數據庫只進入了一條數據

你們要的MyCat實現MySQL分庫分表來了

 

五、分頁查詢,需要的數據在不同表的查詢

其實這一切mycat都已經幫你做好了

比如現在user_id為103的數據分布分兩臺數據庫上,我們進行查詢

你們要的MyCat實現MySQL分庫分表來了

 

還有分頁問題,都跟平時一樣的

你們要的MyCat實現MySQL分庫分表來了

 

六、總結

  • 數據庫使用MySQL8.0需要注意密碼問題
  • 在配置schema.xml時需要注意
  • 配置server.xml時邏輯庫在user用戶雖然不需要但是也需要改為一致
  • 修改MySQL用戶的host為%
  • 密碼驗證規則設置為mysql_native_password
  • 連接mycat時一定要帶著mysql_native_password這個參數

本文使用的mycat也是咔咔第一次接觸,也有很多的東西不明白。后邊咔咔也會一點點的補充這方面的知識,希望大家一起共同進步。

分享到:
標簽:MySQL 分庫分表
用戶無頭像

網友整理

注冊時間:

網站:5 個   小程序:0 個  文章:12 篇

  • 51998

    網站

  • 12

    小程序

  • 1030137

    文章

  • 747

    會員

趕快注冊賬號,推廣您的網站吧!
最新入駐小程序

數獨大挑戰2018-06-03

數獨一種數學游戲,玩家需要根據9

答題星2018-06-03

您可以通過答題星輕松地創建試卷

全階人生考試2018-06-03

各種考試題,題庫,初中,高中,大學四六

運動步數有氧達人2018-06-03

記錄運動步數,積累氧氣值。還可偷

每日養生app2018-06-03

每日養生,天天健康

體育訓練成績評定2018-06-03

通用課目體育訓練成績評定