1. 程式人生 > >MySQL高可用--主從複製與讀寫分離

MySQL高可用--主從複製與讀寫分離

一、Mysql高可用概念 



二、MySQL主從複製原理 


叢集目的,減輕單臺伺服器壓力



三、MySQL主從複製配置

實際操作mysql伺服器叢集,主從複製的過程

master   192.168.230.128
slave01  192.168.230.132

slave02  192.168.230.133


mysql主從複製步驟:
1.配置主從節點資訊(server_id=) 
2.設定從伺服器讀取賬號許可權

3.同步

Linux環境下的配置檔案:/etc/my.cnf

進入/etc目錄檢視my.cnf檔案


修改主(master)伺服器
vi /etc/my.cnf
server_id=128 ###伺服器id
log-bin=mysql-bin ###開啟日誌檔案,作用,主伺服器做寫操作時,都會在伺服器裡面生成日誌檔案,讓從伺服器拿到二進位制執行檔案進行同步。


檢視:


重啟mysql:service mysqld restart


登陸主伺服器的mysql,查詢伺服器server_id 看下是否配置好,如果查詢的值和配置的值不一致,說明沒有配好。
show variables like 'server_id'


登陸主伺服器的mysql,查詢master的狀態 ,出現下面的檔案說明配置成功

show master status;


修改從(slave01)伺服器

vim /etc/my.cnf

server_id=132       ###server_id不能有重複,表示唯一
log-bin-mysql-bin   ###開啟日誌檔案
binlog_do_db=test   ###表示同步的資料庫,這裡同步的是test資料庫


重啟mysql:service mysqld restart

主伺服器給從伺服器賬號授權

###在主伺服器新建一個使用者
CREATE USER 'mysync'@'%' IDENTIFIED BY '123456';
###賦予“REPLICATION SLAVE”的許可權  一般不用root賬號

GRANT REPLICATION SLAVE ON *.* TO 'mysync'@'%' IDENTIFIED BY '123456';


從伺服器進行資料同步
###先關閉之前同步的  
stop slave; 
###授權
change master to master_host='192.168.230.128',master_user='mysync',master_password='123456',
master_log_file='mysql-bin.000003',master_log_pos=106;
###開始同步 
start slave; 
###檢查從伺服器複製功能是否成功
show slave status;


Slave_IO_Running   Yes  //此狀態必須是yes

Slave_SQL_Running Yes //此狀態必須是yes  說明同步成功

測試同步效果:在master伺服器中test資料庫建立test001表,從伺服器test資料庫自動生成test001表!


修改master主伺服器test001表Id值,從伺服器自動同步,至此,主從複製配置完成。


四、MySQL讀寫分離概述

什麼是讀寫分離
在資料庫叢集架構中,讓主庫負責處理事務性查詢,而從庫只負責select查詢,讓兩者分工明確達到提高資料庫整體讀寫能力。MySQL沒有自帶讀寫分離,必須依靠第三方中介軟體或者使用Spring實現讀寫分離。

目前從伺服器有寫的許可權,如果修改從伺服器的值,主伺服器是不會同步的。使用第三方中介軟體管理。



五、MySQL讀寫分離

1)使用中介軟體方式

2)使用Spring實現讀寫分離