MySQL主從配置,實現(xiàn)讀寫分離

一析蝴、實驗?zāi)繕?/strong>

搭建兩臺MySQL服務(wù)器,一臺作為主服務(wù)器绿淋,一臺作為從服務(wù)器闷畸,主服務(wù)器進行寫操作,從服務(wù)器進行讀操作吞滞。

二佑菩、測試環(huán)境

主數(shù)據(jù)庫: CentOS7, MySQL15.1 裁赠, 192.168.1.233

從數(shù)據(jù)庫: CentOS7殿漠, MySQL15.1 , 192.168.1.234

三佩捞、主從配置步驟

1绞幌、確保主數(shù)據(jù)庫與從數(shù)據(jù)庫里的數(shù)據(jù)一樣

例如:主數(shù)據(jù)庫里的a的數(shù)據(jù)庫里有b,c一忱,d表莲蜘,那從數(shù)據(jù)庫里的就應(yīng)該有一個模子刻出來的a的數(shù)據(jù)庫和b,c帘营,d表

我這里在兩臺MySQL上都創(chuàng)建了個名為“test”的數(shù)據(jù)庫來測試票渠,如圖:

image

2、在主數(shù)據(jù)庫里創(chuàng)建一個同步賬號

1)每個從數(shù)據(jù)庫會使用一個MySQL賬號來連接主數(shù)據(jù)庫芬迄,所以我們要在主數(shù)據(jù)庫里創(chuàng)建一個賬號问顷,并且該賬號要授予 REPLICATION SLAVE 權(quán)限,你可以為每個從數(shù)據(jù)庫分別創(chuàng)建賬號禀梳,當然也可以用同一個6耪)

2)你可以用原來的賬號不一定要新創(chuàng)賬號出皇,但你應(yīng)該注意荷科,這個賬號和密碼會被明文存放在master.info文件中胆胰,因此建議單獨創(chuàng)一個只擁有相關(guān)權(quán)限的賬號,以減少對其它賬號的危害!)

3)創(chuàng)建新賬號使用“CREATE USER”别垮,給賬號授權(quán)使用“GRANT”命令碳想,如果你僅僅為了主從復(fù)制創(chuàng)建賬號预吆,只需要授予REPLICATION SLAVE權(quán)限觅够。

4)下面來創(chuàng)建一個賬號,賬號名:repl窘拯,密碼:repl123,只允許192.168.1.的IP段登錄,如下:

  1. mysql> CREATE USER 'repl'@'192.168.1.%' IDENTIFIED BY 'repl123';
  2. mysql> GRANT REPLICATION SLAVE ON *.* TO 'repl'@'192.168.1.%';

5)如果開發(fā)防火墻舆乔,可能要配置下端口,如下:

  1. firewall-cmd --zone=public --add-port=3306/tcp --permanent
  2. firewall-cmd --reload

3颜武、配置主數(shù)據(jù)庫

1)要主數(shù)據(jù)庫绿贞,你必須要啟用二進制日志(binary logging),并且創(chuàng)建一個唯一的Server ID拒名,這步驟可能要重啟MySQL。

2)主服務(wù)器發(fā)送變更記錄到從服務(wù)器依賴的是二進制日志,如果沒啟用二進制日志,復(fù)制操作不能實現(xiàn)(主庫復(fù)制到從庫)旱易。

3)復(fù)制組中的每臺服務(wù)器都要配置唯一的Server ID笆檀,取值范圍是1到(232)?1士修,你自己決定取值登淘。

4)配置二進制日志和Server ID阔籽,你需要關(guān)閉MySQL和編輯my.cnf或者my.ini文件,在 [mysqld] 節(jié)點下添加配置证薇。

5)下面是啟用二進制日志鸦概,日志文件名以“mysql-bin”作為前綴咨察,Server ID配置為1赴肚,如下:

  1. [mysqld]
  2. log-bin=mysql-bin
  3. server-id=1
  4. #網(wǎng)絡(luò)上還有如下配置
  5. #binlog-do-db=mstest //要同步的mstest數(shù)據(jù)庫,要同步多個數(shù)據(jù)庫,就多加幾個replicate-db-db=數(shù)據(jù)庫名 #binlog-ignore-db=mysql //要忽略的數(shù)據(jù)庫

提示1:如果你不配置server-id或者配置值為0二蓝,那么主服務(wù)器將拒絕所有從服務(wù)器的連接誉券。

提示2:在使用InnoDB的事務(wù)復(fù)制,為了盡可能持久和數(shù)據(jù)一致刊愚,你應(yīng)該在my.cnf里配置innodb_flush_log_at_trx_commit=1 和 sync_binlog=1踊跟;

For the greatest possible durability and consistency in a replication setup using InnoDB with transactions, you should useinnodb_flush_log_at_trx_commit=1 and sync_binlog=1 in the master my.cnf file.

提示3:確保主服務(wù)器里的skip-networking選項未啟用,如果網(wǎng)絡(luò)被禁用,你的從服務(wù)器將不能與主服務(wù)器通信并且復(fù)制失敗商玫。

注意:

實際操作發(fā)現(xiàn) /etc/my.cnf文件和教材說的不一樣箕憾,可能我裝的是MariaDB,如下:

image

目測文件被放到了 /etc/my.cnf.d 目錄里拳昌,如下:

image

在 /etc/my.cnf.d/server.cnf 增加相關(guān)配置袭异,如下:

image

重啟MySQL,如圖:

image

查看主服務(wù)器狀態(tài)炬藤,mysql> show master status;御铃, 如圖:

image

(注意:記錄好File和Position,后面要用)

4沈矿、配置從數(shù)據(jù)庫

1)從服務(wù)器上真,同理,要分配一個唯一的Server ID羹膳,需要關(guān)閉MySQL睡互,修改好后再重啟,如下:

  1. [mysqld]
  2. server-id=2
  3. #可以指定要復(fù)制的庫
  4. replicate-do-db = test #在master端不指定binlog-do-db陵像,在slave端用replication-do-db來過濾
  5. replicate-ignore-db = mysql #忽略的庫
  6. #網(wǎng)上還有下面配置
  7. #relay-log=mysqld-relay-bin

提示1:如果有多個從服務(wù)器就珠,每個服務(wù)器的server-id不能重復(fù),跟IP一樣是唯一標識醒颖,如果你沒設(shè)置server-id或者設(shè)置為0嗓违,則從服務(wù)器不會連接到主服務(wù)器。

提示2:一般你不需要在從服務(wù)器上啟用二進制日志图贸,如果你在從服務(wù)器上啟用二進制日志,那你可用它來做數(shù)據(jù)備份和崩潰恢復(fù)冕广,或者做更復(fù)雜的事情(比如這個從服務(wù)器用來當作其它從服務(wù)器的主服務(wù)器)疏日。

2)配置連接主服務(wù)器的信息

  1. mysql> stop slave;
  2. mysql> CHANGE MASTER TO
  3. -> MASTER_HOST='192.168.1.233',
  4. -> MASTER_USER='repl',
  5. -> MASTER_PASSWORD='repl123',
  6. -> MASTER_LOG_FILE='mysql-bin.000002',
  7. -> MASTER_LOG_POS=313;
  8. mysql> start slave;

3)查看從服務(wù)器狀態(tài)

  1. mysql> show slave status \G;
image

5、測試數(shù)據(jù)同步

測試撒汉,連接主服務(wù)器 192.168.1.233沟优,添加了表 stu_user,

然后再連接上 192.168.1.234睬辐,發(fā)現(xiàn)也自己同步創(chuàng)建了表 stu_user挠阁,如圖:

image

然后在主數(shù)據(jù)庫添加一條記錄,從數(shù)據(jù)庫也自動添加了記錄溯饵,如圖:

image

至此侵俗,主從的配置已經(jīng)完成了, 目前是在從庫里面配置復(fù)制“test”這個庫丰刊,

如果要添加其它庫隘谣,可以在主服務(wù)器中添加“binlog-do-db”配置,或者在從服務(wù)器中添加“replicate-do-db”配置啄巧。

四寻歧、讀寫分離實現(xiàn)

主從配置是讀寫分離的前提掌栅,現(xiàn)在前提已經(jīng)配置好了,讀寫分離就看具體項目的實現(xiàn)码泛,

讀寫分離猾封,就是“寫”的操作都在主數(shù)據(jù)庫,“讀”的操作都在從數(shù)據(jù)庫噪珊!

這里我選用一個比較輕量的框架SpeedPHP來做讀寫分離演示晌缘,

這個框架做讀寫分離非常簡單,按要求在配置文件填好信息即可卿城,如圖:

image

簡單寫了些增加/刪除/查詢的方法枚钓,如圖:

image
image

頁面效果如下圖:

image

再來看看兩個數(shù)據(jù)庫,信息一致瑟押,如圖:

image

這個例子中搀捷,

讀取賬號列表的是從 192.168.1.234 (從數(shù)據(jù)庫)上面的數(shù)據(jù)庫操作的,

添加和刪除賬號是從 192.168.1.233 (主數(shù)據(jù)庫)上面的數(shù)據(jù)庫操作的多望,

實現(xiàn)了讀寫分離嫩舟!

原文轉(zhuǎn)至: http://blog.csdn.net/envon123/article/details/76615059

參考:

官方文檔:https://dev.mysql.com/doc/refman/5.5/en/replication-howto.html

mysql主從配置(清晰的思路):http://www.cnblogs.com/sustudy/p/4174189.html

MySQL5.6 數(shù)據(jù)庫主從(Master/Slave)同步安裝與配置詳解:http://blog.csdn.net/xlgen157387/article/details/51331244

MySQL主從架構(gòu)配置:http://blog.csdn.net/jiangsyace/article/details/50556240

?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
  • 序言:七十年代末,一起剝皮案震驚了整個濱河市怀偷,隨后出現(xiàn)的幾起案子家厌,更是在濱河造成了極大的恐慌,老刑警劉巖椎工,帶你破解...
    沈念sama閱讀 206,378評論 6 481
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件饭于,死亡現(xiàn)場離奇詭異,居然都是意外死亡维蒙,警方通過查閱死者的電腦和手機掰吕,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 88,356評論 2 382
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來颅痊,“玉大人殖熟,你說我怎么就攤上這事“呦欤” “怎么了菱属?”我有些...
    開封第一講書人閱讀 152,702評論 0 342
  • 文/不壞的土叔 我叫張陵,是天一觀的道長舰罚。 經(jīng)常有香客問我纽门,道長,這世上最難降的妖魔是什么沸停? 我笑而不...
    開封第一講書人閱讀 55,259評論 1 279
  • 正文 為了忘掉前任膜毁,我火速辦了婚禮,結(jié)果婚禮上,老公的妹妹穿的比我還像新娘瘟滨。我一直安慰自己候醒,他們只是感情好,可當我...
    茶點故事閱讀 64,263評論 5 371
  • 文/花漫 我一把揭開白布杂瘸。 她就那樣靜靜地躺著倒淫,像睡著了一般。 火紅的嫁衣襯著肌膚如雪败玉。 梳的紋絲不亂的頭發(fā)上敌土,一...
    開封第一講書人閱讀 49,036評論 1 285
  • 那天,我揣著相機與錄音运翼,去河邊找鬼返干。 笑死,一個胖子當著我的面吹牛血淌,可吹牛的內(nèi)容都是我干的矩欠。 我是一名探鬼主播,決...
    沈念sama閱讀 38,349評論 3 400
  • 文/蒼蘭香墨 我猛地睜開眼悠夯,長吁一口氣:“原來是場噩夢啊……” “哼癌淮!你這毒婦竟也來了?” 一聲冷哼從身側(cè)響起沦补,我...
    開封第一講書人閱讀 36,979評論 0 259
  • 序言:老撾萬榮一對情侶失蹤乳蓄,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后夕膀,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體虚倒,經(jīng)...
    沈念sama閱讀 43,469評論 1 300
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點故事閱讀 35,938評論 2 323
  • 正文 我和宋清朗相戀三年产舞,在試婚紗的時候發(fā)現(xiàn)自己被綠了裹刮。 大學(xué)時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 38,059評論 1 333
  • 序言:一個原本活蹦亂跳的男人離奇死亡庞瘸,死狀恐怖,靈堂內(nèi)的尸體忽然破棺而出赠叼,到底是詐尸還是另有隱情擦囊,我是刑警寧澤,帶...
    沈念sama閱讀 33,703評論 4 323
  • 正文 年R本政府宣布嘴办,位于F島的核電站瞬场,受9級特大地震影響,放射性物質(zhì)發(fā)生泄漏涧郊。R本人自食惡果不足惜贯被,卻給世界環(huán)境...
    茶點故事閱讀 39,257評論 3 307
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧彤灶,春花似錦看幼、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 30,262評論 0 19
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至搏熄,卻和暖如春棚唆,著一層夾襖步出監(jiān)牢的瞬間,已是汗流浹背心例。 一陣腳步聲響...
    開封第一講書人閱讀 31,485評論 1 262
  • 我被黑心中介騙來泰國打工宵凌, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人止后。 一個月前我還...
    沈念sama閱讀 45,501評論 2 354
  • 正文 我出身青樓瞎惫,卻偏偏與公主長得像,于是被迫代替她去往敵國和親坯门。 傳聞我的和親對象是個殘疾皇子微饥,可洞房花燭夜當晚...
    茶點故事閱讀 42,792評論 2 345

推薦閱讀更多精彩內(nèi)容