CentOS安裝配置Mycat+mysql水平分割,實現分散式儲存
轉自http://blog.csdn.net/testcs_dn/article/details/51438216
謝謝作者的貢獻!
環境:CentOS6.5
JDK1.8
MySQL5.6.35
MyCat1.4
1.首先安裝MySQL,安裝步驟可以參考http://blog.csdn.net/llgyzb/article/details/54691675
2.安裝JDK1.8
安裝MyCat
修改MySQL配置檔案(可選)
vi /etc/my.cnf
新增一行配置:lower_case_table_names=1,
如果找不到my.cnf檔案,copy一個: cp /usr/share/mysql/my-default.cnf /etc/my.cnf
注意:Linux 下部署安裝 MySQL,預設不忍略表名大小寫,需要手動到/etc/my.cnf 下配置
lower_case_table_names=1 使 Linux 環境下 MySQL 忍略表名大小寫,否則使用 MyCAT 的時候會提示找不到表的錯誤!
解壓複製檔案
我這裡將 mycat 放到“/usr/local/mycat/”目錄下,你可以根據自己的需要選擇合適的目錄
chmod +x 命令是給檔案新增可執行許可權tar -zxvf Mycat-server-1.4-RELEASE-20160509173344-linux.tar.gz cp -r mycat /usr/local/mycat cd /usr/local/mycat/ chmod +x *
需要再裝一臺Mycat?直接用命令把檔案複製過去:
scp -r /usr/local/mycat [email protected]:/usr/local/
配置環境變數
vi /etc/profile
在檔案末尾新增一行: export MYCAT_HOME=/usr/local/mycat 使修改生效:source /etc/profile 測試是否生效:
echo $MYCAT_HOME
配置主機名對映
vi /etc/hosts
在檔案中新增你的資料節點MySQL的IP對映:
192.168.0.151 sam_server_1
192.168.0.153 sam_server_2
配置schema
vi /usr/local/mycat/conf/schema.xml
參考我的配置吧,我從官網下載的Release版本的裡面帶的檔案有好多錯誤,我修改了很長時間才能用。
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/" >
<!-- schema 中可以有多個table節點,列幾個在Navicat中就能看到幾個,庫裡有這裡沒有的話客戶端中也看不到 -->
<schema name="TESTDB" checkSQLschema="false" sqlMaxLimit="100">
<table name="travelrecord" dataNode="dn1,dn2" rule="auto-sharding-long" />
<table name="company" primaryKey="ID" dataNode="dn2,dn1" rule="mod-long"/>
<table name="goods" primaryKey="ID" type="global" dataNode="dn1,dn2" />
<table name="employee" primaryKey="ID" dataNode="dn1,dn2"
rule="sharding-by-intfile" />
<table name="customer" primaryKey="ID" dataNode="dn1,dn2"
rule="sharding-by-intfile">
<childTable name="orders" primaryKey="ID" joinKey="customer_id"
parentKey="id">
<childTable name="order_items" joinKey="order_id"
parentKey="id" />
</childTable>
<childTable name="customer_addr" primaryKey="ID" joinKey="customer_id"
parentKey="id" />
</table>
</schema>
<!-- 資料節點 -->
<dataNode name="dn1" dataHost="sam_server_1" database="db1" />
<dataNode name="dn2" dataHost="sam_server_2" database="db2" />
<!-- 節點主機資訊 -->
<dataHost name="sam_server_1" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<!-- 指定寫入資料的主機 -->
<writeHost host="hostM1" url="192.168.0.151:3306" user="root" password="password">
<!-- 指定讀取資料的主機,可以有多個 -->
<readHost host="hostS1" url="192.168.0.152:3306" user="root" password="password" />
</writeHost>
</dataHost>
<dataHost name="sam_server_2" maxCon="1000" minCon="10" balance="0"
writeType="0" dbType="mysql" dbDriver="native" switchType="1" slaveThreshold="100">
<heartbeat>select user()</heartbeat>
<writeHost host="hostM2" url="192.168.0.153:3306" user="root" password="password">
<!-- can have multi read hosts -->
<readHost host="hostS2" url="192.168.0.154:3306" user="root" password="password" />
</writeHost>
</dataHost>
</mycat:schema>
這裡的使用者密碼是MySQL的遠端登入使用者名稱密碼。
配置使用者
vi /usr/local/mycat/conf/server.xml<?xml version="1.0" encoding="UTF-8"?>
<!-- - - Licensed under the Apache License, Version 2.0 (the "License");
- you may not use this file except in compliance with the License. - You
may obtain a copy of the License at - - http://www.apache.org/licenses/LICENSE-2.0
- - Unless required by applicable law or agreed to in writing, software -
distributed under the License is distributed on an "AS IS" BASIS, - WITHOUT
WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. - See the
License for the specific language governing permissions and - limitations
under the License. -->
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
<system>
<property name="defaultSqlParser">druidparser</property>
<!-- <property name="useCompression">1</property>--> <!--1為開啟mysql壓縮協議-->
<!-- <property name="processorBufferChunk">40960</property> -->
<!--
<property name="processors">1</property>
<property name="processorExecutor">32</property>
-->
<!--預設是65535 64K 用於sql解析時最大文字長度 -->
<!--<property name="maxStringLiteralLength">65535</property>-->
<!--<property name="sequnceHandlerType">0</property>-->
<!--<property name="backSocketNoDelay">1</property>-->
<!--<property name="frontSocketNoDelay">1</property>-->
<!--<property name="processorExecutor">16</property>-->
<!--
<property name="mutiNodeLimitType">1</property> 0:開啟小數量級(預設) ;1:開啟億級資料排序
<property name="mutiNodePatchSize">100</property> 億級數量排序批量
<property name="processors">32</property> <property name="processorExecutor">32</property>
<property name="serverPort">8066</property> <property name="managerPort">9066</property>
<property name="idleTimeout">300000</property> <property name="bindIp">0.0.0.0</property>
<property name="frontWriteQueueSize">4096</property> <property name="processors">32</property> -->
</system>
<user name="test">
<property name="password">test</property>
<property name="schemas">TESTDB</property>
</user>
<user name="mycat">
<property name="password">123456</property>
<property name="schemas">TESTDB</property>
<property name="readOnly">false</property>
</user>
<!--
<quarantine>
<whitehost>
<host host="127.0.0.1" user="mycat"/>
<host host="127.0.0.2" user="mycat"/>
</whitehost>
<blacklist check="false"></blacklist>
</quarantine>
-->
</mycat:server>
這裡配置的是連線Mycat的使用者,密碼是明文的,schemas對應schema.xml檔案中的schema節點
建立資料庫
在每個資料節點MySQL上建立分庫,資料將會根據你指定的策略分配儲存到不同的節點上。
這個要單獨連線到每個MySQL上去建立,建立的資料庫名稱對應schema.xml檔案中指定的名稱,不做這一步的話客戶端連線上操作的時候會不響應卡死。
啟動服務
經過以上幾個步驟的配置,就可以到/usr/local/Mycat/bin 目錄下執行:./mycat start
即可啟動 mycat 服務!
注:mycat 支援的命令{ console | start | stop | restart | status | dump }
可以通過以下命令檢視服務是否啟動成功:
./mycat status
如果啟動失敗了,可以檢視以下檔案的內容,分析具體原因:
/usr/local/mycat/logs/wrapper.log
或者執行mycat console檢視錯誤資訊
啟動成功了,你應該已經知道怎麼做了!馬上用Navicat for MySQL連線上看看吧!
測試這裡使用mycat自帶的表來測試 啟動mycat:
mycat start 使用Navicat for MySQL連線mycat: mycat/[email protected]
注意:
遠端連線時可能會遇到以下錯誤:
你需要參考文中的方法開放“8066”埠!建表:
create table employee (id int not null primary key,name varchar(100),sharding_id int not null);
插入資料:
insert into employee(id,name,sharding_id) values(1,'leader us',10000);
insert into employee(id,name,sharding_id) values(2, 'me',10010);
insert into employee(id,name,sharding_id) values(3, 'mycat',10000);
insert into employee(id,name,sharding_id) values(4, 'mydog',10010);
分別到資料DB1,DB2檢視,可以看到在DB1中有: 1 leader us 10000 3 mycat 10000 DB2中有: 2 me 10010 4 mydog 10010
這說明分片成功了。
而我們還配置了主從複製,現在去從庫看看,是不是也有主庫中的資料了。
結束語
日誌是最好的朋友,不明白出了什麼問題,有日誌的話就去檢視它,沒有比它更精確直接的了;
即使官網提供的幫助也是很雜亂,各種版本,我是根據幾個版本來完成的。
對於用慣了Windows的圖形配置介面的小夥伴,開始的時候會感覺比較吃力的。
相關推薦
CentOS安裝配置Mycat+mysql水平分割,實現分散式儲存
轉自http://blog.csdn.net/testcs_dn/article/details/51438216 謝謝作者的貢獻! 環境:CentOS6.5 JDK1.8 MySQL5.6.35 MyCat1.4 1.首先安裝MySQL,安裝步驟可以參考http://b
CentOS安裝配置MySql數據庫
ima 16px 必須 eas 方式 temp grep 5.7 leg CentOS版本7.2,MySql版本5.7 1、下載MySql安裝源 wget https://dev.mysql.com/get/mysql57-community-release-el
Linux CentOS安裝配置MySQL資料庫
安裝mysql資料庫 a)下載mysql源安裝包:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarch.rpm b)安裝mysql源:yum localinstall mysql5
Linux(Ubuntu,Debian,Centos)安裝配置mysql並且遠端連線資料庫
1.Ubuntu 16 #1.安裝 sudo apt-get install mysql-server mysql-client libmysqlclient-dev #2.檢查是否安裝成功 sudo netstat -tap | grep mysql #3.啟動服務 service
centos安裝配置vncserver,遠端登入伺服器或者虛擬機器
環境:centos6.0 kvm虛擬化環境 一、伺服器端 1 yum install vnc* //安裝的是tightvnc 2 vi /etc/sysconfig/vncservers 修改成 VNCSERVERS="1:root"
Centos 安裝配置sublime
centos 安裝 閃爍 yum 磁盤 分享 cnblogs 目標 刪除 區別 Sublime 是linux下不錯的編輯器. http://www.sublimetext.com/ 1. 聯網安裝sublime 包 #sudo yum install sublime-tex
centos 安裝配置pptp實現vpn
centos l2tp vpn centos 安裝配置pptp實現vpn 1 前言PPTP(Point to Point Tunneling Protocol),即點對點隧道協議。該協議是在PPP協議的基礎上開發的一種新的增強型安全協議,支持多協議虛擬專用網(VPN),可以通過密碼驗證協
Centos安裝配置redis
bar master 發現 ping 裝配 成功 style not mst 1.安裝rediscd wget http://labfile.oss.aliyuncs.com/files0422/redis-2.8.9.tar.gz tar xvfz redis-2.8.
Linux CentOS安裝配置MySQL5.7數據庫
-s var vim rar linux c system comm p地址 dev 安裝mysql數據庫 a)下載mysql源安裝包:wget http://dev.mysql.com/get/mysql57-community-release-el7-8.noarc
Python 安裝與專屬 IDE_Pycharm 安裝配置、永久激活,贈漢化版!
機房 發送 交流 沒有想到 HA QQ targe direct 方式 這個為什麽說是一次學生時代的經歷呢,我的出發點並沒有是為了吊胃口。確實,這個Python小應用,只能在學生時代用得著吧,尤其是高中和大學,如果你沒有想到也沒關系,看完我下面說的就會明白了。 對紅蜘
Python安裝與專屬IDE_Pycharm安裝配置、永久激活,贈漢化版!
editor 安裝 har 提取 視頻教程 -c Python程序員 load 程序員 我是首先寫pycharm教程,後來考慮到大家會裝不會使用,我又寫了一些基礎使用教程,然後再寫這個Python安裝的。總共花費了87分鐘,確實有點辛苦,所以這些簡單的我都會用太多的話去解釋
Centos6.5 安裝配置 Apache +mysql +php 操作文檔
開機自啟動 作文 ddr pos init dev c-c++ mcrypt file 文件 目錄: 1.配置系統軟件源 2.Apache的安裝 2.1 Apache的下載 2.2 Apache的安裝 3.mysql的安
用戶目錄下編譯mysql源碼,實現單主機安裝多個mysql實例
.tar.gz 5.7 unix Language working 符號 cmak sam dcm 1.建立用於安裝mysql的用戶目錄:useradd mysql_1; passwd mysql_1; 2.在沒有mysql_1目錄下建立文件夾setup: su - mys
服務器Centos7.4 下jdk1.8環境配置、mysql環境搭建,mysql找回(重置)密碼看這篇就夠了
版本 jdk下載 改密 我們 完成 eight ati html wid 最近一直幫我的同學搭建自己的服務器,其中涉及到了以下知識點,經過查詢博客資料等方式,再加上多重實踐,我成功總結出了完整的配置一個簡單服務器環境的步驟: (來自 ZYXS 的CSDN 博客 ,全文地址請
centos 安裝配置python虛擬環境、pip
con extras led 安裝 ble upgrading 工具 rom The centos 安裝配置python虛擬環境、pip 1.安裝pip包安裝工具# 系統默認源沒有pip安裝包[root@localhost python]# yum install pyth
mysql-配置主從數據庫,實現讀寫分離
參考 image 增加 mysql- pan 位置 span 主從同步 原則 主從分離的原則:所有的寫操作在主數據庫中進行,因為主從分離的原理是涉及到同步數據,那就可能會出現延遲或者其他問題,就可能會出現臟數據。 所以,在從庫中進行的讀操作也必須是有一定容忍性的數據,例如日
MySql免安裝版安裝配置以及MySQL服務無法啟動解決方案
MySql免安裝版安裝配置以及MySQL服務無法啟動解決方案 文首提要: 下載的MySQL版本是:mysql-5.7.17-winx64.zip &n
Linux CentOS安裝配置OpenVPN 2.4.0最新版教程
Linux CentOS安裝配置OpenVPN 2.4.0最新版教程 2016.12.27 官方釋出了OpenVPN 2.4.0版本,相比之前的版本變化不大,新版引入了一個更快的資料壓縮演算法叫 lz4(舊版用的是 lzo),新版不再支援W
CentOS安裝配置MySQL8.0
前言 這裡記錄下在CentOS 上,安裝配置MySQL的步驟; 正文 下載yum源的安裝包 yum localinstall https://repo.mysql.com//mysql80-community-release-el7-1.noarch.rpm 安裝
HIVE的安裝配置、mysql的安裝、hive建立表、建立分割槽、修改表等內容、hive beeline使用、HIVE的四種資料匯入方式、使用Java程式碼執行hive的sql命令
1.上傳tar包 這裡我上傳的是apache-hive-1.2.1-bin.tar.gz 2.解壓 mkdir -p /home/tuzq/software/hive/ tar -zxvf apache-hive-1.2.1-bin.tar.gz -C /home/