Mysql主從配置,實現讀寫分離

來源:互聯網
上載者:User

標籤:i686   建議   mysql主從   二進位   gif   family   同步   csdn   固定   

大型網站為了軟解大量的並發訪問。除了在網站實現分布式負載平衡,遠遠不夠。到了資料業務層、資料訪問層,假設還是傳統的資料結構,或者僅僅是單單靠一台server扛,如此多的資料庫連接操作。資料庫必定會崩潰。資料丟失的話,後果更是 不堪設想。這時候。我們會考慮怎樣降低資料庫的聯結。一方面採用優秀的代碼架構,進行代碼的最佳化,採用優秀的資料緩衝技術如:memcached,假設資金豐厚的話,必定會想到假設server群,來分擔主要資料庫的壓力。Ok切入今天微博主題,利用MySQL主從配置,實現讀寫分離,減輕資料庫壓力。這樣的方式,在現在非常多網站裡都有使用。也不是什麼新奇事情,今天總結一下,方便大家學習參考一下。

概述:搭設一台Masterserver(win8.1系統,Ip:192.168.0.104)。搭設兩台Slaveserver(虛擬機器——一台Ubuntu,一台 Windows Server 2003)

原理:主server(Master)負責網站NonQuery操作。從server負責Query操作,使用者能夠依據網站功能模特性塊固定訪問Slaveserver,或者自己寫個池或隊列。自由為請求分配從server串連。

主從server利用MySQL的二進位記錄檔,實現資料同步。二進位日誌由主server產生。從server響應擷取同步資料庫。

詳細實現:

1、在主從server上都裝上MySQL資料庫,windows系統鄙人安裝的是mysql_5.5.25.msi版本號碼,Ubuntu安裝的是mysql-5.6.22-linux-glibc2.5-i686.tar

windows安裝mysql就不談了,一般地球人都應該會。鄙人略微說一下Ubuntu的MySQL安裝,我建議不要線上下載安裝,還是離線安裝的好。大家能夠參考 http://www.linuxidc.com/Linux/2013-01/78716.htm 這位不知道大哥還是姐妹。寫的挺好依照這個就能裝上。在安裝的時候可能會出現幾種現象,大家能夠參考解決一下:

(1)假設您不是使用root使用者登入。建議 su - root 切換到Root使用者安裝。那就不用老是 sudo 了。

(2)存放解壓的mysql 目錄,目錄名字最好改成mysql

(3)在./support-files/mysql.server start 啟動MySQL的時候。可能會出現一個警告。中文意思是啟動服務運行讀檔案時。忽略了my.cnf檔案,那是由於my.cnf的檔案許可權有問題,mysql會覺得該檔案有危急不會運行。可是mysql還會啟動成功,但假設以下配置從伺服器參數改動my.cnf檔案的時候,你會發現檔案改過了。可是重新啟動服務時,改動過後的配置沒有運行,並且您 list一下mysql的目錄下會發現非常多.my.cnf.swp等中間檔案。

這都是由於MySQL啟動時沒有讀取my.cnf的原因。這時僅僅要將my.cnf的檔案許可權改成my_new.cnf的許可權一樣就Ok,命令:chmod 644 my.cnf就Ok

(4)Ubuntu中改動文檔內容沒有Vim。最好把Vim 裝上,apt-get install vim,不然預計會抓狂。

這時候我相信MySQL應該安裝上去了。

2、配置Master主server

(1)在Master MySQL上建立一個使用者‘repl’。並同意其它Slaveserver能夠通過遠程訪問Master,通過該使用者讀取二進位日誌,實現資料同步。

 建立用於讀取日誌的資料庫使用者

(2)找到MySQL安裝目錄改動my.Ini檔案。

mysql中有好幾種日誌方式,這不是今天的重點。

我們僅僅要啟動二進位日誌log-bin就ok。

 在[mysqld]以下添加以下幾行代碼

 View Code

(3)查看日誌

mysql> SHOW MASTER STATUS;
+-------------------+----------+--------------+------------------+
| File | Position | Binlog_Do_DB | Binlog_Ignore_DB |
+-------------------+----------+--------------+------------------+
| master-bin.000001 | 1285 | | |
+-------------------+----------+--------------+------------------+
1 row in set (0.00 sec)

重新啟動MySQL服務

3、配置Slave從server(windows)

(1)找到MySQL安裝目錄改動my.ini檔案。在[mysqld]以下添加以下幾行代碼

 my.cnf 配置

重新啟動MySQL服務

(2)串連Master

change master to master_host=‘192.168.0.104‘, //Master serverIp
master_port=3306,
master_user=‘repl‘,
master_password=‘mysql‘, 
master_log_file=‘master-bin.000001‘,//Masterserver產生的日誌
master_log_pos=0;

(3)啟動Slave

start slave;

4、Slave從server(Ubuntu)

(1)找到MySQL安裝目錄改動my.cnf檔案,vim my.cnf

 s

 

(2) ./support-files/myql.server restart 重新啟動MySQL服務  ,  ./bin/mysql 進入MySQL命令表單 

(3)串連Master

change master to master_host=‘192.168.0.104‘, //Master serverIp
master_port=3306,
master_user=‘repl‘,
master_password=‘mysql‘, 
master_log_file=‘master-bin.000001‘,//Masterserver產生的日誌
master_log_pos=0;

(4)啟動Slave

start slave;

OK全部配置都完畢了,這時候大家能夠在Master Mysql 中進行測試了,由於我們監視的時Master mysql  全部動作記錄,所以。你的不論什麼改變主server資料庫的操作,都會同步到從server上。建立個資料庫,表試試吧。。

Mysql主從配置,實現讀寫分離

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.