你們要的MyCat實現MySQL分庫分表來了
藉助MyCat來實現MySQL的分庫分表落地,沒有實現過的,或者沒了解過的可以看看
❞
前言
在之前寫過一篇關於mysql分庫分表的文章,那篇文章只是給大家提供了一個思路,但是回覆下面有很多說是細節問題沒有提到。所以咔咔就在出了這篇文章。
本文只是針對其中的一個細節而已,比如如何落地MySQL的分庫分表,本文使用資料庫中介軟體MyCat來實現。
其中還有最多的回覆是分庫分表後的分頁查詢如何操作,這個問題也會在後文繼續寫到。
關於MySQL分庫分表這個真正落地使用中間還有很多的問題,咔咔儘量把解決方案都提供給大家,如你有更好的實現方案,評論區見哈!
本文使用環境
-
MySQL8.0 -
Centos7.3
一、MyCat安裝
避擴音示廣告問題,自己去開啟MyCat的官方地址去複製下載地址,這裡咔咔就不提供了。
咔咔使用的虛擬機器是centos7.3,需要環境的jdk已經有了,就不在寫教程了。如沒有的話,百度搜搜就可以了哈!
下圖就是安裝成功的安裝包
進行解壓:
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使用者的密碼 第三行:是資料庫
配置項二:schema.xml
這個檔案主要修改連線其他資料庫的倆個節點
使用規則是mod-long這個需要注意一下子
在這塊的配置咔咔卡了很久,下面這個是咔咔已經配置好的
配置項三:rule.xml
這裡是order_id使用mod-long規則 這個修改就是你有幾個節點就寫多少即可
三、資料庫資訊準備
在倆臺伺服器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
連線成功就可以看到我們的邏輯庫 然後新增三個資料
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開始的,之前咔咔做測試使用了一些。 這時我們在來看192.168.253.129和114.55.103.25這倆臺資料庫的資料分佈
「192.168.253.129資料庫 」 這個可以看到進入了倆條資料
「144.55.103.25資料庫 」
這臺資料庫只進入了一條資料
五、分頁查詢,需要的資料在不同表的查詢
其實這一切mycat都已經幫你做好了
比如現在user_id為103的資料分佈分倆臺資料庫上,我們進行查詢
還有分頁問題,都跟平時一樣的
六、總結
-
資料庫使用MySQL8.0需要注意密碼問題 -
在配置schema.xml時需要注意 -
配置server.xml時邏輯庫在user使用者雖然不需要但是也需要改為一致 -
修改MySQL使用者的host為% -
密碼驗證規則設定為mysql_native_password -
連線mycat時一定要帶著mysql_native_password這個引數
本文使用的mycat也是咔咔第一次接觸,也有很多的東西不明白。後邊咔咔也會一點點的補充這方面的知識,希望大家一起共同進步。
❝堅持學習、堅持寫博、堅持分享是咔咔從業以來一直所秉持的信念。希望在諾大網際網路中咔咔的文章能帶給你一絲絲幫助。
來自 “ https://www.cnblogs.com/fkaka/p/13516475.html ”, 原文作者:咔咔-;原文連結:https://www.cnblogs.com/fkaka/p/13516475.html,如有侵權,請聯絡管理員刪除。
相關文章
- Linux MySQL分庫分表之MycatLinuxMySql
- Mycat分庫分表的簡單實踐
- mycat配置分庫分表
- Mycat分庫分表配置
- Mycat分庫分表(一)
- Mycat分表分庫原則
- MyCat分庫分表、讀寫分離
- Mycat 讀寫分離+分庫分表
- MySQL運維9-Mycat分庫分表之列舉分片MySql運維
- 基於代理的資料庫分庫分表框架 Mycat實踐資料庫框架
- mycat和sharding JDBC分庫分表JDBC
- MySQL運維12-Mycat分庫分表之按天分片MySql運維
- 分散式資料庫中介軟體 MyCat | 分庫分表實踐分散式資料庫
- MySQL運維11-Mycat分庫分表之應用指定分片MySql運維
- 3.1 MYSQL分庫分表實踐MySql
- MySQL 分庫分表方案,總結太全了。。MySql
- 來了,來了,你們要的Nginx教程來了Nginx
- Mycat實現mysql的負載均衡讀寫分離MySql負載
- MySQL分庫分表MySql
- [Mysql]分庫分表MySql
- Mycat垂直分庫
- MySQL 常用分庫分表方案,都在這裡了!MySql
- 分庫分表,可能真的要退出歷史舞臺了!
- 使用淘寶中介軟體cobar實現mysql分庫分表MySql
- MySQL運維6-Mycat垂直分庫MySql運維
- mycat結合MySQL的雙主實現讀寫分離MySql
- 為什麼要分庫分表?
- Mysql分庫分表方案MySql
- 【Mysql】OneProxy分庫分表MySql
- Mycat讀寫分離、主從切換、分庫分表的操作記錄
- MySQL分庫分表的原則MySql
- MySQL運維8-Mycat範圍分表MySql運維
- MySQL運維10-Mycat分庫分表之一致性雜湊分片MySql運維
- Docker安裝Mycat和Mysql進行水平分庫分表實戰【圖文教學】DockerMySql
- ShardingSphere + Mysql,實現分庫分表、讀寫分離,並整合 SpringBootMySqlSpring Boot
- Mycat中介軟體實現Mysql主從讀寫分離MySql
- 你們要的乾貨來了——實戰 Spring BootSpring Boot
- 高可用Mysql架構_Mysql主從複製、Mysql雙主熱備、Mysql雙主雙從、Mysql讀寫分離(Mycat中介軟體)、Mysql分庫分表架構(Mycat中介軟體)的演變MySql架構