溫馨提示×

溫馨提示×

您好,登錄后才能下訂單哦!

密碼登錄×
登錄注冊×
其他方式登錄
點擊 登錄注冊 即表示同意《億速云用戶服務條款》

mysql主從集群配置

發布時間:2020-08-03 16:46:43 來源:網絡 閱讀:375 作者:梁十八 欄目:MySQL數據庫

mysql主從集群配置


先編輯master配置:

vim /etc/my.cnf

mysql主從集群配置

(加上紅框部分。#server id部分:每個都有獨一無二的id作為區分,這id可以用服務器ip后三位。#binary log:日志。#statement row mixed:三種監聽方式)

其中三種情況:監聽語句變化,還是磁盤變化,還是混合模式?

然后編輯slave的/etc/my.cnf:

mysql主從集群配置

(設置id,建立中繼日志)

然后分別啟動主和從:service mysqld start

接下來,主和從要建立聯系:

登錄mysql:?

mysql -uroot -p

master建立授權帳號(這個帳號允許你復制master的二進制日志。一個replication client帳號,一個replication slave帳號):

mysql主從集群配置

(授權一個客戶端帳號、一個從帳號。*.*:作用于所有庫和表上,不像mongodb能單選某庫某表。to 帳號repl,指定它發揮作用的ip:@192.168.%.%,即前綴是192.168都可以用。identitied by 'repl':指定密碼為repl)

到目前為止,主服務器的日志、帳號、從服務器的relaylog好了,只需要通知從服務器連過來:

mysql主從集群配置(master_log_file是當前master所用的二進制文件。master_log_pos是當前master的position。下面有查看方法)

見識下二進制日志:

mysql主從集群配置

目前用的最新的二進制日志是:

mysql主從集群配置(mater機器)

看看當前master機器的狀態:

mysql主從集群配置(確實當前用的是mysql-bin.000003,position 278的意思是:我主服務器已經寫到278位置了,你從服務器注意哈)

操作slave:

mysql主從集群配置(reset slave:重置slave。然后設置對應master的相關信息)

查看slave的情況:show slave status \G

mysql主從集群配置

啟動slave:

mysql主從集群配置

再查看狀態就好了(第一行變成了waiting? for master to send event):

mysql主從集群配置

接下來,不管在master是新建庫、表,各種增刪改查,在slave中都會看到相應的變化





典型問題:

有一業務場景,經過測試,讀寫比為1:20,請根據讀寫比,合理設置優化方案.

?

讀寫比:

寫數據/讀數據的比例,

Insert/update/delelte ????/ ?select

?

不管具體技術,"讀寫分離"的概念出發來推導一下基本的要素.


mysql主從集群配置

通俗的說:讀服務器就是指寫服務器的數據鏡像.

?

從服務端看:要有N臺從服務器和主服務器保持數據一致.

從客戶端看:比如有一條insert語句和一條select 語句,

則要區分讀/寫語句,并且分別請求從/主服務器.

?

?


服務器端讀寫分離的具體技術

1:數據庫集群技術

集群由3個概念

1:sql節點 ?sql node

2:數據節點 data node

3:管理節點 ndb managerment

?

Sql語句發送"1sql節點", "1sql"節點發往"2數據節點",再由3管理節點完成數據節點的之間的同步.

?

集群技術相對復雜,至少有3種節點,4臺服務器才能完成.

?

?

2:數據庫復制 replication

mysql主從集群配置


數據庫復制 replication 的實現原理

1:主服務器凡運行語句,都產生一個二進制日志 binlog

2:從服務器不斷讀取主服務器的binlog

3:從主服務讀取到的binlog,轉換為自身可執行的relaylog,

4:執行relaylog

?

?

實現步驟:

1:首先確保主服務器打開二進制日志功能.

這樣,主服務器一旦有數據變化,立即產生二進制日志.

?

2:從服務器也需要開啟二進制日志和relay日志功能.

這樣可以從主服務器讀取binlog,并產生relaylog

?

3:在主服務器建立一個從服務器的賬號,并授予數得上權限.

?

4: 指定從服務對應的主服務器,開啟從服務器.

?

?

具體實施

本人虛擬機下有兩臺linux,IP199 200

1: 200做從服務器

2: 199mysql,做為主服務器.

3: 保證主從3306端口互通.

4: 配置主服務器,打開binlog

mysql主從集群配置

#給服務器起一個唯一的id

server-id=1

?#開啟二進制日志

log-bin=mysql-bin

#指定日志格式

binlog-format=mixd/row/statement
重啟mysql

mysql主從集群配置

已經能夠充當master服務器


5: 配置從服務器打開binlogrelaylog

mysql主從集群配置

mysql主從集群配置

重啟從服務器

?

6: 在主服務器上創建相應的復制賬號

mysql主從集群配置

7: 在從服務器通過語句指定要復制的主服務器(注意,可以一主多從,不可一從多主).

mysql主從集群配置

8:啟動從服務器功能

->start slave;

mysql主從集群配置

8: 測試.

?

?


常用語句:

show master status ; 查看master的狀態, 尤其是當前的日志及位置

show slave stattus; 查看slave的狀態.

reset slave ; ?重置slave狀態.

start slave ; 啟動slave 狀態(開始監聽msater的變化)

stop slave; 暫停slave狀態;









查看mysql帳號:

mysql主從集群配置

向AI問一下細節

免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。

AI

亚洲午夜精品一区二区_中文无码日韩欧免_久久香蕉精品视频_欧美主播一区二区三区美女