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值,從伺服器自動同步,至此,主從複製配置完成。
什麼是讀寫分離
在資料庫叢集架構中,讓主庫負責處理事務性查詢,而從庫只負責select查詢,讓兩者分工明確達到提高資料庫整體讀寫能力。MySQL沒有自帶讀寫分離,必須依靠第三方中介軟體或者使用Spring實現讀寫分離。
目前從伺服器有寫的許可權,如果修改從伺服器的值,主伺服器是不會同步的。使用第三方中介軟體管理。
五、MySQL讀寫分離
1)使用中介軟體方式
2)使用Spring實現讀寫分離