白話MyCat——MyCat部署執行(Linux環境)與使用步驟詳解
MyCAT 可以視為“MySQL”叢集的企業級資料庫,用來替代昂貴的Oracle叢集,其背後是阿里曾經開源的知名產品Cobar。MyCAT的目標是:低成本的將現有的單機資料庫和應用平滑遷移到“雲”端,解決資料儲存和業務規模迅速增長情況下的資料瓶頸問題。
一、部署步驟詳解
(1) 用命令列工具或圖形化客戶端,連線MYSQL,建立DEMO所用三個分片資料庫;
CREATE database db1;
CREATE database db2;
CREATE database db3;
(2) 修改my.inf新增以下語句,my.inf 一般會放在/etc/my.cnf 或 /etc/mysql/my.cnf,設定為Mysql大小寫不敏感,否則可能會發生表找不到的問題。
lower_case_table_names = 1
(3) 解壓Mycat-server-1.3.0.2-20150105144205-linux.tar.gz 到/usr/local/mycat
(4) 解壓jdk-7u65-linux-i586.gz,拷貝jdk1.7.0_65 到/usr/local/mycat/
(5) 修改/usr/local/conf/wrap.conf 修改wrapper.java.command=java為上一步存放路徑
wrapper.java.command=/usr/local/mycat/jdk1.7.0/bin/java
(6) 建立mycat 使用者,改變目錄許可權為mycat
useradd mycat
chown -R mycat.mycat /usr/local/mycat
(7) 修改使用者密碼
passwd mycat
輸入:
(8) 修改/usr/local/conf/schema.xml,URL、使用者名稱、密碼修改,其餘不變
<writeHost host="hostM1" url="10.1.176.104:3306" user="root"
password="www.com.workssys">
二、執行步驟詳解
(1) 進入 /usr/local/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目錄/usr/local/mysql/bin/
(2) 登入mysql 執行以下命令
./mysql -utest -ptest -h10.1.176.104 -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:10.1.176.104,使用者名稱: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詳解
- 【mycat】mycat在windows環境下的安裝和啟動Windows
- 10天搞定Python,執行環境(超詳細步驟)Python
- 【Mycat】Mycat故障轉移之writetype與switchtype
- Linux環境下MySQL安裝部署操作步驟LinuxMySql
- 【Mycat】Mycat讀寫分離與負載均衡2負載
- DKhadoop環境安裝配置步驟詳解Hadoop
- 【mycat】mycat中配合mysql自增主鍵的使用MySql
- MyCAT原始碼分析——分析環境部署原始碼
- Mycat監控工具Mycat-webWeb
- 【Mycat】Mycat核心開發者帶你輕鬆掌握Mycat路由轉發!!路由
- redhat 部署多套tomcat環境步驟RedhatTomcat
- MyCat入門篇-什麼是MyCat
- 【Mycat】Mycat核心開發者帶你看盡Mycat三大核心配置檔案
- TorchServe 詳解:5 步將模型部署到生產環境模型
- win10遊戲執行環境包怎麼安裝_win10電腦遊戲執行環境包安裝詳細步驟Win10遊戲
- 【Mycat】作為Mycat核心開發者,怎能不來一波Mycat系列文章?
- linux環境下安裝nginx步驟LinuxNginx
- 高可用Mysql架構_Mycat叢集部署(HAProxy + 兩臺Mycat+Mysql雙主雙從)MySql架構
- 使用IDA除錯SO脫殼,環境準備及各步驟原理詳解除錯
- JavaScript執行環境與執行棧JavaScript
- 1、MyCat入門
- MyCat的快速搭建
- Mycat垂直分庫
- Mycat 安裝配置
- linux執行環境&命令Linux
- Linux MySQL分庫分表之MycatLinuxMySql
- Linux執行環境安裝全解(轉)Linux
- Linux環境變數詳解與應用Linux變數
- Linux詳解(基礎、環境配置、專案部署入門)Linux
- Mycat Web監控工具Web
- docker中安裝mycatDocker
- mycat 資料彙總
- Mycat 全域性系列號
- Mycat分片方案需要解決的問題
- 白話說https執行原理HTTP
- Linux環境的PHP執行LinuxPHP
- 部署基於Dragonwell的Java執行環境GoJava