1. 程式人生 > >Mysql主從複製、讀寫分離+MyCat資料庫中介軟體

Mysql主從複製、讀寫分離+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]下面加入如下內容

binlog-do-db=database1
binlog-do-db=database2
binlog-ignore-db=mysql
並且 開啟binlog日誌
log-bin=mysql-bin
以及Server-id 
server-id       = 1

如圖:

主伺服器配置OK

service mysql restart
重啟服務

進入Mysql命令列

show master status\G
得到:


記住這裡的:

     File: mysql-bin.000028
        Position: 22285
一會要用到

配置MySQL從伺服器的my.cnf檔案

replicate-do-db=database1
replicate-do-db=database2
replicate-ignore-db=mysql



以及修改serverid
server-id       = 2

另一臺從伺服器同理 ServerId 為3 

重啟Mysql服務

注意:MySQL 5.1.7版本之後,已經不支援把master配置屬性寫入my.cnf配置檔案中了,只需要把同步的資料庫和要忽略的資料庫寫入即可。


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

slave stop;   #停止slave同步程序
然後執行:
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後執行:

slave start;    #開啟slave同步程序
開啟Slave

在執行:

SHOW SLAVE STATUS\G   #檢視slave同步資訊,出現以下內容

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

OK主從複製搭建成功

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

解壓Mycat

得到:


接下來進行配置讀寫分離

首先 :

vim wrapper.conf 
配置Java路徑


然後 編輯

vim schema.xml
修改內容如下:
<?xml version="1.0"?>
<!DOCTYPE mycat:schema SYSTEM "schema.dtd">
<mycat:schema xmlns:mycat="http://org.opencloudb/">

        <schema name="database1" checkSQLschema="false" sqlMaxLimit="100" dataNode="database1"></schema>

        <dataNode name="database1" dataHost="localhost1" database="database1" />

        <dataHost name="localhost1" maxCon="1000" minCon="10" balance="1" writeType="0" dbType="mysql" dbDriver="native" switchType="1"  slaveThreshold="100">
                <heartbeat>select user()</heartbeat>
                <writeHost host="cluster1" url="192.168.152.11:3306" user="root" password="root">
                        <readHost host="cluster2" url="192.168.152.12:3306" user="root" password="root" />
                        <readHost host="cluster3" url="192.168.152.13:3306" user="root" password="root" />
                </writeHost>
        </dataHost>
</mycat:schema>
簡單說明一下:


編輯賬戶
vim server.xml

<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE mycat:server SYSTEM "server.dtd">
<mycat:server xmlns:mycat="http://org.opencloudb/">
        <system>
                <!-- 
                        <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="admin">
                <property name="password">admin</property>
                <property name="schemas">database1</property>
        </user>
</mycat:server>
這裡的 的schemas 一定要和前面的 對應

配置OK

bin/mycat start

啟動Mycat

連線MyCat

mysql -h127.0.0.1 -uadmin -padmin -P8066


Ok 配置結束

Mysql 主從複製 + MyCat讀寫分離 配置就OK了