MySQL主從配置詳解

MySQL主從復制原理

主服務器數(shù)據(jù)庫的每次操作都會記錄在其二進制文件mysql-bin.xxx(該文件可以在mysql目錄下的data目錄中看到)中,從服務器的I/O線程使用專用賬號登錄到主服務器中讀取該二進制文件,并將文件內容寫入到自己本地的中繼日志relay-log文件中骑科,然后從服務器的SQL線程會根據(jù)中繼日志中的內容執(zhí)行SQL語句

MySQL主從同步的作用

1镣奋、可以作為備份機制武氓,相當于熱備份
2倍阐、可以用來做讀寫分離檐晕,均衡數(shù)據(jù)庫負載

項目場景

1暑诸、主服務器10.10.20.111,其中已經(jīng)有數(shù)據(jù)庫且?guī)熘杏斜肀倩摇⒑瘮?shù)以及存儲過程

2个榕、從服務器10.10.20.116,空的啥也沒有

準備工作

主從服務器需要有相同的初態(tài)
1芥喇、將主服務器要同步的數(shù)據(jù)庫枷鎖西采,避免同步時數(shù)據(jù)發(fā)生改變

mysql>use db;
mysql>flush tables with read lock;  

2、將主服務器數(shù)據(jù)庫中數(shù)據(jù)導出

mysql>mysqldump -uroot -pxxxx db > db.sql;

這個命令是導出數(shù)據(jù)庫中所有表結構和數(shù)據(jù)继控,如果要導出函數(shù)和存儲過程的話使用

mysql>mysqldump -R -ndt db -uroot -pxxxx > db.sql

其他關于mysql導入導出命令的戳這里
3械馆、備份完成后,解鎖主服務器數(shù)據(jù)庫

mysql>unlock tables;

4武通、將初始數(shù)據(jù)導入從服務器數(shù)據(jù)庫

mysql>create database db;
mysql>use db;
mysql>source db.sql;

好了霹崎,現(xiàn)在主從服務器擁有一樣的初態(tài)了

主服務器配置

1、修改MySQL配置

vi /etc/my.cnf

在[mysqld]中添加

#主數(shù)據(jù)庫端ID號
server_id = 1           
 #開啟二進制日志                  
log-bin = mysql-bin    
#需要復制的數(shù)據(jù)庫名冶忱,如果復制多個數(shù)據(jù)庫尾菇,重復設置這個選項即可                  
binlog-do-db = db        
#將從服務器從主服務器收到的更新記入到從服務器自己的二進制日志文件中                 
log-slave-updates                        
#控制binlog的寫入頻率。每執(zhí)行多少次事務寫入一次(這個參數(shù)性能消耗很大囚枪,但可減小MySQL崩潰造成的損失) 
sync_binlog = 1                    
#這個參數(shù)一般用在主主同步中派诬,用來錯開自增值, 防止鍵值沖突
auto_increment_offset = 1           
#這個參數(shù)一般用在主主同步中,用來錯開自增值, 防止鍵值沖突
auto_increment_increment = 1            
#二進制日志自動刪除的天數(shù)链沼,默認值為0,表示“沒有自動刪除”千埃,啟動時和二進制日志循環(huán)時可能刪除  
expire_logs_days = 7                    
#將函數(shù)復制到slave  
log_bin_trust_function_creators = 1       

2、重啟MySQL忆植,創(chuàng)建允許從服務器同步數(shù)據(jù)的賬戶

#創(chuàng)建slave賬號account放可,密碼123456
mysql>grant replication slave on *.* to 'account'@'10.10.20.116' identified by '123456';
#更新數(shù)據(jù)庫權限
mysql>flush privileges;

3谒臼、查看主服務器狀態(tài)

mysql>show master status\G;
***************** 1. row ****************
            File: mysql-bin.000033 #當前記錄的日志
        Position: 337523 #日志中記錄的位置  
    Binlog_Do_DB: 
Binlog_Ignore_DB: 

執(zhí)行完這個步驟后不要再操作主服務器數(shù)據(jù)庫了,防止其狀態(tài)值發(fā)生變化

從服務器配置

1耀里、修改MySQL配置

vi /etc/my.cnf

在[mysqld]中添加

server_id = 2
log-bin = mysql-bin
log-slave-updates
sync_binlog = 0
#log buffer將每秒一次地寫入log file中蜈缤,并且log file的flush(刷到磁盤)操作同時進行。該模式下在事務提交的時候冯挎,不會主動觸發(fā)寫入磁盤的操作
innodb_flush_log_at_trx_commit = 0        
#指定slave要復制哪個庫
replicate-do-db = db         
#MySQL主從復制的時候底哥,當Master和Slave之間的網(wǎng)絡中斷,但是Master和Slave無法察覺的情況下(比如防火墻或者路由問題)房官。Slave會等待slave_net_timeout設置的秒數(shù)后趾徽,才能認為網(wǎng)絡出現(xiàn)故障,然后才會重連并且追趕這段時間主庫的數(shù)據(jù)
slave-net-timeout = 60                    
log_bin_trust_function_creators = 1

2翰守、執(zhí)行同步命令

#執(zhí)行同步命令孵奶,設置主服務器ip,同步賬號密碼蜡峰,同步位置
mysql>change master to master_host='10.10.20.111',master_user='account',master_password='123456',master_log_file='mysql-bin.000033',master_log_pos=337523;
#開啟同步功能
mysql>start slave;

3了袁、查看從服務器狀態(tài)

mysql>show slave status\G;
*************************** 1. row ***************************
               Slave_IO_State: Waiting for master to send event
                  Master_Host: 10.10.20.111
                  Master_User: account
                  Master_Port: 3306
                Connect_Retry: 60
              Master_Log_File: mysql-bin.000033
          Read_Master_Log_Pos: 337523
               Relay_Log_File: db2-relay-bin.000002
                Relay_Log_Pos: 337686
        Relay_Master_Log_File: mysql-bin.000033
             Slave_IO_Running: Yes
            Slave_SQL_Running: Yes
              Replicate_Do_DB:
          Replicate_Ignore_DB:
          ...

Slave_IO_Running及Slave_SQL_Running進程必須正常運行,即Yes狀態(tài)湿颅,否則說明同步失敗
若失敗查看mysql錯誤日志中具體報錯詳情來進行問題定位
最后可以去主服務器上的數(shù)據(jù)庫中創(chuàng)建表或者更新表數(shù)據(jù)來測試同步

參考1:MySQL配置主主及主從備份
參考2:MySQL數(shù)據(jù)庫設置主從同步

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯(lián)系作者
  • 序言:七十年代末载绿,一起剝皮案震驚了整個濱河市,隨后出現(xiàn)的幾起案子油航,更是在濱河造成了極大的恐慌崭庸,老刑警劉巖,帶你破解...
    沈念sama閱讀 219,490評論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件谊囚,死亡現(xiàn)場離奇詭異冀自,居然都是意外死亡,警方通過查閱死者的電腦和手機秒啦,發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,581評論 3 395
  • 文/潘曉璐 我一進店門熬粗,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人余境,你說我怎么就攤上這事驻呐。” “怎么了芳来?”我有些...
    開封第一講書人閱讀 165,830評論 0 356
  • 文/不壞的土叔 我叫張陵含末,是天一觀的道長。 經(jīng)常有香客問我即舌,道長佣盒,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 58,957評論 1 295
  • 正文 為了忘掉前任顽聂,我火速辦了婚禮肥惭,結果婚禮上盯仪,老公的妹妹穿的比我還像新娘。我一直安慰自己蜜葱,他們只是感情好全景,可當我...
    茶點故事閱讀 67,974評論 6 393
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著牵囤,像睡著了一般爸黄。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上揭鳞,一...
    開封第一講書人閱讀 51,754評論 1 307
  • 那天炕贵,我揣著相機與錄音,去河邊找鬼野崇。 笑死称开,一個胖子當著我的面吹牛,可吹牛的內容都是我干的舞骆。 我是一名探鬼主播,決...
    沈念sama閱讀 40,464評論 3 420
  • 文/蒼蘭香墨 我猛地睜開眼径荔,長吁一口氣:“原來是場噩夢啊……” “哼督禽!你這毒婦竟也來了?” 一聲冷哼從身側響起总处,我...
    開封第一講書人閱讀 39,357評論 0 276
  • 序言:老撾萬榮一對情侶失蹤狈惫,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后鹦马,有當?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體胧谈,經(jīng)...
    沈念sama閱讀 45,847評論 1 317
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 37,995評論 3 338
  • 正文 我和宋清朗相戀三年荸频,在試婚紗的時候發(fā)現(xiàn)自己被綠了菱肖。 大學時的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 40,137評論 1 351
  • 序言:一個原本活蹦亂跳的男人離奇死亡旭从,死狀恐怖稳强,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情和悦,我是刑警寧澤退疫,帶...
    沈念sama閱讀 35,819評論 5 346
  • 正文 年R本政府宣布,位于F島的核電站鸽素,受9級特大地震影響褒繁,放射性物質發(fā)生泄漏。R本人自食惡果不足惜馍忽,卻給世界環(huán)境...
    茶點故事閱讀 41,482評論 3 331
  • 文/蒙蒙 一棒坏、第九天 我趴在偏房一處隱蔽的房頂上張望燕差。 院中可真熱鬧,春花似錦俊抵、人聲如沸谁不。這莊子的主人今日做“春日...
    開封第一講書人閱讀 32,023評論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽刹帕。三九已至,卻和暖如春谎替,著一層夾襖步出監(jiān)牢的瞬間偷溺,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 33,149評論 1 272
  • 我被黑心中介騙來泰國打工钱贯, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留挫掏,地道東北人。 一個月前我還...
    沈念sama閱讀 48,409評論 3 373
  • 正文 我出身青樓秩命,卻偏偏與公主長得像尉共,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子弃锐,可洞房花燭夜當晚...
    茶點故事閱讀 45,086評論 2 355

推薦閱讀更多精彩內容

  • 《老男孩Linux運維》筆記MySQL-Documentation 概述 MySQL介紹 MySQL屬于傳統(tǒng)關系型...
    Zhang21閱讀 1,007評論 0 9
  • 環(huán)境 操作系統(tǒng):CentOS-6.6-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6....
    思夢PHP閱讀 2,045評論 0 12
  • 環(huán)境 操作系統(tǒng):CentOS-6.5-x86_64-bin-DVD1.iso MySQL版本:mysql-5.6....
    宇信智臻sy閱讀 2,637評論 0 6
  • Spring Cloud為開發(fā)人員提供了快速構建分布式系統(tǒng)中一些常見模式的工具(例如配置管理袄友,服務發(fā)現(xiàn),斷路器霹菊,智...
    卡卡羅2017閱讀 134,672評論 18 139
  • 一 水澤女神斯蒂柯娜慌了剧蚣,從她還是一片小小的蓮葉的時候,就沒有遇到過這種情況旋廷,她所居住的多墨克山腳下的珍珠湖今年的...
    一只長耳朵兔子先生閱讀 528評論 1 2