中文字幕av专区_日韩电影在线播放_精品国产精品久久一区免费式_av在线免费观看网站

溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

Mycat如何部署與使用

發布時間:2021-11-02 17:23:32 來源:億速云 閱讀:150 作者:小新 欄目:MySQL數據庫

這篇文章將為大家詳細講解有關Mycat如何部署與使用,小編覺得挺實用的,因此分享給大家做個參考,希望大家閱讀完這篇文章后可以有所收獲。

MyCAT 可以視為“MySQL”集群的企業級數據庫,用來替代昂貴的Oracle集群,其背后是阿里曾經開源的知名產品Cobar。MyCAT的目標是:低成本的將現有的單機數據庫和應用平滑遷移到“云”端,解決數據存儲和業務規模迅速增長情況下的數據瓶頸問題。

1 應用場景

Mycat 有很多數據分庫規則,接下來幾篇就相關覺得常用的規則進行試用與總結。

一般來說,按自然月份或按日期來進行數據分片的規則比較適用于商城訂單查詢,類似最近1周、2周、3個月內的數據。或是報表類應用。

這樣的數據放在一個片區內省去了數據合并的時間。

當然按月數據量不要過大就OK。

一、部署步驟詳解
(1) 用命令行工具或圖形化客戶端,連接MYSQL,創建DEMO所用三個分片數據庫;

CREATE SCHEMA `range_db_01` DEFAULT CHARACTER SET utf8 ;
CREATE SCHEMA `range_db_02` DEFAULT CHARACTER SET utf8 ;
CREATE SCHEMA `range_db_03` DEFAULT CHARACTER SET utf8 ;
CREATE SCHEMA `range_db_04` DEFAULT CHARACTER SET utf8 ;

(2) 修改配置my.cnf新增以下語句, 一般會放在/etc/my.cnf 或 /etc/mysql/my.cnf,設置為Mysql表名大小寫不敏感,否則可能會發生表找不到的問題。

lower_case_table_names = 1

(3) 解壓Mycat-server-1.6-RELEASE-20161028204710-linux.tar.gz 到安裝目錄下,會生成mycat目錄

(4) 安裝jdk-7u79-linux-x64

(5) 修改mycat/conf/wrap.conf 修改wrapper.Java.command=java為上一步存放路徑

wrapper.java.command=/usr/java/jdk1.7.0_79/

(6) 創建mycat 用戶,改變目錄權限為mycat

useradd mycat
chown -R mycat.mycat mycat

(7) 修改用戶密碼

passwd mycat
輸入:

(8) 修改mycat/conf/schema.xml,URL、用戶名、密碼修改,其余不變

<writeHost host="hostM1" url="192.168.184.56:3306" user="root"
                       password="root">

二、運行步驟詳解
(1) 進入 mycat/bin (默認數據端口為8066,管理端口為9066)
執行./mycat start
(2) 進入logs目錄,查看日志,如果wrapper.log 報錯 java.NET.BindException: Address already in use 殺掉正在執行的相關java進程

ps -ef|grep java
kill -9 xxx

三、使用步驟詳解
(1) 進入mysql bin目錄mysql/bin/
(2) 登錄mysql 執行以下命令
./mysql -utest -ptest -h292.168.184.56 -P8066 -DTESTDB

(mycat的用戶賬號和授權信息是在conf/server.xml文件中配置)
(3) 表創建測試:

mysql> create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
Query OK, 0 rows affected (0.30 sec)
mysql> explain create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
+-----------+------------------------------------------------------------------------------------------------+
| DATA_NODE | SQL                                                                                            |
+-----------+------------------------------------------------------------------------------------------------+
| dn1       | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) | 
| dn2       | create table employee (id int not null primary key,name varchar(100),sharding_id int not null) | 
+-----------+------------------------------------------------------------------------------------------------+
2 rows in set (0.04 sec)

(4) 客戶端軟件使用:navicat
創建mycat新連接:ip:192.168.184.56,用戶名:test,密碼:test,端口:8066
可看到TESTDB數據庫下已創建表:employee
打開db1,db2 數據庫也可看到已創建表employee

(5) 插入數據測試

mysql> insert into employee(id,name,sharding_id) values(1,'leader us',10000);
ERROR 2006 (HY000): MySQL server has gone away
No connection. Trying to reconnect...
Connection id:    6
Current database: TESTDB
Query OK, 1 row affected (0.03 sec)
mysql> explain insert into employee(id,name,sharding_id) values(1,'leader us',10000);
+-----------+-----------------------------------------------------------------------+
| DATA_NODE | SQL                                                                   |
+-----------+-----------------------------------------------------------------------+
| dn1       | insert into employee(id,name,sharding_id) values(1,'leader us',10000) | 
+-----------+-----------------------------------------------------------------------+
1 row in set (0.00 sec)

(6) 根據規則auto-sharding-long(主鍵范圍)進行分片測試

mysql> explain create table company(id int not null primary key,name varchar(100));
+-----------+---------------------------------------------------------------------+
| DATA_NODE | SQL                                                                 |
+-----------+---------------------------------------------------------------------+
| dn1       | create table company(id int not null primary key,name varchar(100)) | 
| dn2       | create table company(id int not null primary key,name varchar(100)) | 
| dn3       | create table company(id int not null primary key,name varchar(100)) | 
+-----------+---------------------------------------------------------------------+
3 rows in set (0.01 sec)

(7) 三個分片上都插入了3條數據

mysql> explain insert into company(id,name) values(1,'hp');
+-----------+---------------------------------------------+
| DATA_NODE | SQL                                         |
+-----------+---------------------------------------------+
| dn1       | insert into company(id,name) values(1,'hp') | 
| dn2       | insert into company(id,name) values(1,'hp') | 
| dn3       | insert into company(id,name) values(1,'hp') | 
+-----------+---------------------------------------------+
3 rows in set (0.00 sec)

(8) 確認是分片存儲

mysql> select * from employee;
+----+-----------+-------------+
| id | name      | sharding_id |
+----+-----------+-------------+
|  2 | me        |       10010 | 
|  4 | mydog     |       10010 | 
|  1 | leader us |       10000 | 
|  3 | mycat     |       10000 | 
+----+-----------+-------------+
4 rows in set (0.01 sec)
mysql> explain select * from employee;
+-----------+----------------------------------+
| DATA_NODE | SQL                              |
+-----------+----------------------------------+
| dn1       | SELECT * FROM employee LIMIT 100 | 
| dn2       | SELECT * FROM employee LIMIT 100 | 
+-----------+----------------------------------+
2 rows in set (0.00 sec)

關于“Mycat如何部署與使用”這篇文章就分享到這里了,希望以上內容可以對大家有一定的幫助,使各位可以學到更多知識,如果覺得文章不錯,請把它分享出去讓更多的人看到。

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

成安县| 宿州市| 仁布县| 灌阳县| 太白县| 宜兰市| 岳阳县| 大城县| 清远市| 邢台市| 雅安市| 崇明县| 防城港市| 女性| 砀山县| 布拖县| 彝良县| SHOW| 紫云| 朝阳区| 河西区| 措勤县| 乌鲁木齐县| 开鲁县| 翼城县| 呼图壁县| 金昌市| 岢岚县| 邢台县| 炉霍县| 南丹县| 巨野县| 霍林郭勒市| 清原| 浦县| 沁源县| 镇远县| 肥乡县| 巴塘县| 通河县| 鹤峰县|