資料庫中介軟體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的讀寫分離: