Mysql讀寫分離是什么?主從數據庫如何設置?

本篇文章給大家帶來的內容是關于mysql讀寫分離是什么?主從數據庫如何設置?有一定的參考價值,有需要的朋友可以參考一下,希望對你有所幫助。

何謂讀寫分離?

mysql無非四個功能:增,刪,改,讀.而將增刪改和讀分離操作.這樣有利于提高系統性能.
試著想想,進搬退改貨又賣貨改成了前門只賣貨,其它去后門.這樣是不是就很清晰了?
往往看起來高大上的東西,做起來也是挺簡單的.

下面是寫給小白的,都是非常直觀的操作.

1、配置:
兩臺服務器同配置的mysql如mysql5.7
PS:如果條件有限,一臺也可以,只需要安裝兩個mysql服務(不同端口如3306,3307),只是這就有點違背效率初衷了

2、代碼:
1.一般直接在代碼層將mysql操作類的讀寫如update,insert與select * from進行路由分離.使之對應不同的服務器.
2.中間件代理,即不改動代碼的前提下,由中間件將讀寫請求發送至主從服務器.

現在講講主從如何配置:

1、開放端口:大部分主機都默認Mysql端口3306,那么先將兩臺機子的安全組或防火墻里把3306端口打開并重啟.
2、端口打開了,現在配置兩個服務器(一臺主機兩個Mysql服務器的同理):

下文以主ip:192.168.0.1,從ip:192.168.0.2,創建同步賬號spec,密碼spec_password為例:

主服務器(增刪改):

#1.Mysql配置改以下并重啟服務(命令行里直接重啟:service mysql restart) [mysqld] server-id=1 log-bin=master-bin log-bin-index=master-bin.index  #2.命令行mysql執行或phpmyadmin里執行: GRANT REPLICATION SLAVE ON *.* TO 'spec'@'192.168.0.2' IDENTIFIED BY 'spec_password'; flush privileges;

這樣,主服務器就完工了.

從服務器配置:

#1.Mysql配置改以下并重啟服務(命令行里直接重啟:service mysql restart) [mysqld] server-id=2 relay-log-index=slave-bin.index relay-log=slave-bin  #2.命令行mysql執行或phpmyadmin里執行: change master to master_host='192.168.0.1',master_port=3306,master_user='spec',master_password='spec_password',master_log_file='master-bin.000001',master_log_pos=0; start slave

一般來說,配置到此就完成了.

3.測試:

從服務器中查詢語句:show slave status
如果Slave_IO_State=Waiting for master to send Event就成功了.
其余狀態通常都是以下原因:

1.主從的安全組或防火墻未打開3306端口
2.主從之間ping不通.
3.上面的spec賬密錯誤

現在起,在主服務器隨便增刪改,都會同步到從服務器了.

4.建議:

1.切記從服務器只操作讀,不操作增刪改.保持數據的同步性,這樣當一臺服務器故障的時候,另一臺就可以頂上去(其實主服務器宕機的時候肯定會丟失一部分最新數據)。
2.從服務器的帶寬一定>=主服務器,盡量減少同步延遲.要是小水管,同步自然慢一步嘛。

? 版權聲明
THE END
喜歡就支持一下吧
點贊15 分享