1. 程式人生 > >資料庫中介軟體MyCat(二)-mysql實現主從複製

資料庫中介軟體MyCat(二)-mysql實現主從複製

前言:

         我們考慮到一些大型的資料庫資料庫讀寫分離對於大型系統或者訪問量很高的網際網路應用來說,是必不可少的一個重要功能。從資料庫的角度來說,對於大多數應用來說,從集中到分佈,最基本的一個需求不是資料儲存的瓶頸,而是在於計算的瓶頸,即SQL查詢的瓶頸,我們知道,正常情況下,Insert SQL就是幾十個毫秒的時間內寫入完成,而系統中的大多數Select SQL則要幾秒到幾分鐘才能有結果,很多複雜的SQL,其消耗伺服器CPU的能力超強,不亞於死迴圈的威力。在沒有讀寫分離的系統上.

      對於 MySQL 來說,標準的讀寫分離是主從模式,一個寫節點 Master 後面跟著多個讀節點,讀節點的數量取決於系統的壓力,通常是 1-3 個讀節點的配置.

一.mysql主從複製的環境

mysql版本:5.5.49

主伺服器:linux

主伺服器IP:192.168.72.133

從伺服器:linux

從伺服器IP:192.168.72.134

二.mysql主從複製原理和注意點

原理:主伺服器(Master)負責網站NonQuery操作,從伺服器負責Query操作,使用者可以根據網站功能模特性塊固定訪問Slave伺服器,或者自己寫個池或佇列,自由為請求分配從伺服器連線。主從伺服器利用MySQL的二進位制日誌檔案,實現資料同步。二進位制日誌由主伺服器產生,從伺服器響應獲取同步資料庫

        主伺服器:開啟二進位制日誌 BinaryLog
        從伺服器:配置讀的節點,不停的監聽
注意:

主從版本一致,

主DB server開啟二進位制日誌和從DBserverde server開啟二進位制日誌和從DBserver的server_id都必須一致

主資料庫和從資料庫的表必須都相同

三.mysql主伺服器的配置

首先我們主從資料庫中建立相同的表結構db1    db2     db3

第一步:修改mysql的配置檔案 /etc/my.conf

mysqlID段下
            binlog-do-db=db1
            binlog-ignore-db=mysql
            開啟二進位制:
            log-bin=mysql-bin
            伺服器id唯一:
            server-id=134

第二步:從新啟動mysql服務  service mysql restart

第三步:建立賬戶& 授權  重新整理許可權

在主伺服器上授權:


第四步:檢視主伺服器的狀態 show master status

 

四.mysql從伺服器的配置

第一步:修改my.conf檔案
             [mysqlId]

第二步:配置從伺服器

change master to master_host='192.168.72.133',master_port=3306,master_user='repl'
,master_password='123456',master_log_file='mysql-bin.000001',master_log_pos=120

第三步:啟動伺服器

start slave

第四步:檢查 伺服器主從是否配置成功

show slave status

如上我們看不清,我們通過資料庫連線,後檢視

 

錯誤記錄:

Slave_IO_State: Connecting to master

這個錯誤原因是這樣的,我把主伺服器的使用者名稱寫錯了,一直處於連線狀態,改變後連線成功

測試主從:插入一條資料

測試成功,主表插入資料,從表可以看到

五.MyCat的配置

WriteType引數配置:

測試myCat的讀寫分離: