mysql主從復制(一主一從),讀寫分離


一、數據主從理論

1、主從復制原理

    Mysql主從又叫Replication、AB復制。簡單講就是A與B兩台機器做主從后,在A上寫數據,另外一台B也會跟着寫數據,實現數據實時同步。

  

 

 

 2、MySQL之間數據復制的基礎是二進制日志文件(binary log file)。一台MySQL數據庫一旦啟用二進制日志后,其作為master,它的數據庫中所有操作都會以“事件”的方式記錄在二進制日志中,其他數據庫作為slave通過一個I/O線程與主服務器保持通信,並監控master的二進制日志文件的變化,如果發現master二進制日志文件發生變化,則會把變化復制到自己的中繼日志中,然后slave的一個SQL線程會把相關的“事件”執行到自己的數據庫中,以此實現從數據庫和主數據庫的一致性,也就實現了主從復制。

   

 

 

3、主從復制的作用及應用

  

  (1)實時災備,用於故障切換
  (2)讀寫分離,提供查詢服務
  (3)備份,避免影響業務

二、主從復制操作流程

1、服務器初始准備
  主服務器
    開啟二進制日志
    配置唯一的server-id
    獲得master二進制日志文件名及位置
    創建一個用於slave和master通信的用戶賬號
  從服務器
    配置唯一的server-id
    使用master分配的用戶賬號讀取master二進制日志
    啟用slave服務

  准備工作:

    1.主從數據庫版本最好一致(mysql5.5)
    2.主從數據庫內數據保持一致(mysql5.5)
    主數據庫:192.168.138.150
    從數據庫:192.168.138.151

2、修改Mysql配置,開啟bin.log

  找到主數據庫的配置文件my.cnf(或者my.ini)

    

 

  修改完成之后,重啟數據庫

3、重啟mysql,創建用於同步的用戶賬號並賦予權限

 

  mysql> create user jumpwslaver@192.168.138.151 IDENTIFIED BY 'jumpwbx';

  

  賦予權限

  

 

 

   檢查從庫賬戶jumpwbxslaver的權限

  mysql> show grants for jumpwbxslaver@192.168.138.151;

  

3、查看master狀態,記錄二進制文件名(mysql-bin.000008)和位置(1993)

  mysql> show master status ;

  

 

 

至此,主庫配置完成。

三、主從復制從庫配置流程

  1、同樣的是修改數據庫的/etc/my.conf文件,需要注意的是sever-id 必須區別於主數據庫的server-id

  2、重啟mysql,打開mysql會話,執行同步SQL語句(需要主服務器主機名,登陸憑據,二進制文件的名稱和位置)

  mysql> CHANGE MASTER TO MASTER_HOST='192.168.138.150',
  -> MASTER_USER='jumpwbx',
  -> MASTER_PASSWORD='jumpwbx',
  -> MASTER_LOG_FILE='mysql-bin.000008',
  -> MASTER_LOG_POS=1993;

 

  

 

 

3、啟動主從同步

 

  mysql> start slave;

 

  

 

4、查看slave狀態

  mysql> SHOW SLAVE STATUS\G;

  

 

  當Slave_IO_Running和Slave_SQL_Running都為YES的時候就表示主從同步設置成功。接下來,可以在主庫做些增刪查找的操作,看一下是否同步到從庫。

 

 


 

 四、主從同步實驗

  主庫數據庫狀態

  

  從庫數據庫狀態

  

  操作:刪除lee這個自定義的數據庫

  

  

  從庫已經和主庫同步。

 

 

 

 


 

擴展操作

  可以在配置中進行定義,哪些庫是同步的,哪些是不同步的。

  #不同步哪些數據庫
  binlog-ignore-db = mysql
  binlog-ignore-db = test
  binlog-ignore-db = information_schema 


清除主從關系

https://www.cnblogs.com/musen/p/11162783.html


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM