Mycat讀寫分離


最近搭建了 MySQL 主從 並使用MyCat作為數據庫中間件

版本:

Mysql  5.5.48

Linux :CentOS 6.8

MyCat : 1.4

 

節點:

192.168.152.11Cluster1

192.168.152.12Cluster2

192.168.152.13Cluster3

 

首先 在三台節點上都安裝mysql (如何安裝 自行百度)

授權登陸:

GRANT ALL PRIVILEGES ON *.* TO 'root'@'%'IDENTIFIED BY 'root' WITH GRANT OPTION;

三台節點都授權遠程登陸

 

三個節點都創建數據庫 database1 、database2

----------------------------------------

 

配置MySQL主服務器的my.cnf文件

vim /etc/my.cnf

在[mysqld]下面加入如下內容

 

[sql]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. binlog-do-db=database1  
  2. binlog-do-db=database2  
  3. binlog-ignore-db=mysql  

並且 開啟binlog日志

 

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. log-bin=mysql-bin  

以及Server-id 

 

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. server-id       = 1  

 

如圖:

主服務器配置OK

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. service mysql restart  

重啟服務

 

進入Mysql命令行

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. show master status\G  

得到:

 

 

記住這里的:

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. File: mysql-bin.000028  
  2.    Position: 22285  

一會要用到

 

配置MySQL從服務器的my.cnf文件

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. replicate-do-db=database1  
  2. replicate-do-db=database2  
  3. replicate-ignore-db=mysql  




以及修改serverid

 

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. server-id       = 2  


另一台從服務器同理 ServerId 為3 

 

重啟Mysql服務

 

注意:MySQL 5.1.7版本之后,已經不支持把master配置屬性寫入my.cnf配置文件中了,只需要把同步的數據庫和要忽略的數據庫寫入即可。

 

Mysql命令行 進入Mysql 在 Cluster2、Cluster3上執行

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. slave stop;   #停止slave同步進程  

然后執行:

 

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. change master to master_host='192.168.152.11',master_user='root',master_password='root',master_log_file='mysql-bin.000028' ,master_log_pos=22285;  

注意這里的 

 

master_log_file='mysql-bin.000028' ,master_log_pos=22285;

一定要對應

配置Ok后執行:

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. slave start;    #開啟slave同步進程  

開啟Slave

 

在執行:

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. SHOW SLAVE STATUS\G   #查看slave同步信息,出現以下內容  

 

注意查看:
Slave_IO_Running: Yes
Slave_SQL_Running: Yes
以上這兩個參數的值為Yes,即說明配置成功!

 

OK主從復制搭建成功

 

接下來 安裝Mycat1.4 下載地址:http://www.mycat.org.cn/  點擊這里直接下載

解壓Mycat

得到:

接下來進行配置讀寫分離

首先 :

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. vim wrapper.conf   

配置Java路徑

 

然后 編輯

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. vim schema.xml  

修改內容如下:

 

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <?xml version="1.0"?>  
  2. <!DOCTYPE mycat:schema SYSTEM "schema.dtd">  
  3. <mycat:schema xmlns:mycat="http://org.opencloudb/">  
  4.   
  5.         <schema name="database1" checkSQLschema="false" sqlMaxLimit="100" dataNode="database1"></schema>  
  6.   
  7.         <dataNode name="database1" dataHost="localhost1" database="database1" />  
  8.   
  9.         <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">  
  10.                 <heartbeat>select user()</heartbeat>  
  11.                 <writeHost host="cluster1" url="192.168.152.11:3306" user="root" password="root">  
  12.                         <readHost host="cluster2" url="192.168.152.12:3306" user="root" password="root" />  
  13.                         <readHost host="cluster3" url="192.168.152.13:3306" user="root" password="root" />  
  14.                 </writeHost>  
  15.         </dataHost>  
  16. </mycat:schema>  

簡單說明一下:

 

編輯賬戶
vim server.xml

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. <?xml version="1.0" encoding="UTF-8"?>  
  2. <!DOCTYPE mycat:server SYSTEM "server.dtd">  
  3. <mycat:server xmlns:mycat="http://org.opencloudb/">  
  4.         <system>  
  5.                 <!--   
  6.                         <property name="mutiNodeLimitType">1</property> 0:開啟小數量級(默認) ;1:開啟億級數據排序  
  7.                         <property name="mutiNodePatchSize">100</property> 億級數量排序批量  
  8.                         <property name="processors">32</property<property name="processorExecutor">32</property>   
  9.                         <property name="serverPort">8066</property<property name="managerPort">9066</property>   
  10.                         <property name="idleTimeout">300000</property<property name="bindIp">0.0.0.0</property>   
  11.                         <property name="frontWriteQueueSize">4096</property<property name="processors">32</property> -->  
  12.         </system>  
  13.   
  14.         <user name="admin">  
  15.                 <property name="password">admin</property>  
  16.                 <property name="schemas">database1</property>  
  17.         </user>  
  18. </mycat:server>  

這里的 的schemas 一定要和前面的 對應

 

 

配置OK

bin/mycat start

啟動Mycat

連接MyCat

 

[html]  view plain  copy
 
 在CODE上查看代碼片派生到我的代碼片
  1. mysql -h127.0.0.1 -uadmin -padmin -P8066  


 

Ok 配置結束

 

Mysql 主從復制 + MyCat讀寫分離 配置就OK了


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM