標籤: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主從配置,實現讀寫分離