mysql主從同步

 

啓動mysql服務 登陸相關權限的用戶  進行操做mysql

 

如下整理來源於:https://blog.csdn.net/mycwq/article/details/17136001sql

 

MYSQL主從同步是目前使用比較普遍的數據庫架構,技術比較成熟,配置也不復雜,特別是對於負載比較大的網站,主從同步可以有效緩解數據庫讀寫的壓力。數據庫

MySQL主從同步的機制

MYSQL主從同步是在MySQL主從複製(Master-Slave Replication)基礎上實現的,經過設置在Master MySQL上的binlog(使其處於打開狀態),Slave MySQL上經過一個I/O線程從Master MySQL上讀取binlog,而後傳輸到Slave MySQL的中繼日誌中,而後Slave MySQL的SQL線程從中繼日誌中讀取中繼日誌,而後應用到Slave MySQL的數據庫中。這樣實現了主從數據同步功能。架構

 

MySQL主從同步的做用

一、能夠做爲一種備份機制,至關於熱備份
二、能夠用來作讀寫分離,均衡數據庫負載ide

 

MySQL主從同步的步驟

1、準備操做
一、主從數據庫版本一致,建議版本5.5以上
二、主從數據庫數據一致性能

2、主數據庫master修改測試

一、修改MySQL配置:網站

 

[plain]  view plain  copy
 
  1. # 日誌文件名  
  2. log-bin = mysql-bin  
  3.   
  4. # 主數據庫端ID號  
  5. server-id = 1  

二、重啓mysql,建立用於同步的帳戶:spa

 

 

[plain]  view plain  copy
 
  1. # 建立slave賬號slave_account,密碼123456  
  2. mysql>grant replication slave on *.* to 'slave_account'@'%' identified by '123456';  
  3.   
  4. # 更新數據庫權限  
  5. mysql>flush privileges;  

三、查詢master的狀態.net

 

[plain]  view plain  copy
 
  1. mysql> show master status;  
  2. +------------------+----------+--------------+------------------+  
  3. | File             | Position | Binlog_Do_DB | Binlog_Ignore_DB |  
  4. +------------------+----------+--------------+------------------+  
  5. | mysql-bin.000009 |      196 |              |                  |  
  6. +------------------+----------+--------------+------------------+  
  7. 1 row in set  

 

 注:執行完這個步驟後不要再操做主數據庫了,防止主數據庫狀態值變化

3、從數據庫slave修改

 

一、修改MySQL配置:

 

[plain]  view plain  copy
 
  1. # 從數據庫端ID號  
  2. server-id =2  

二、執行同步命令

 

[plain]  view plain  copy
 
  1. # 執行同步命令,設置主數據庫ip,同步賬號密碼,同步位置  
  2. mysql>change master to master_host='192.168.1.2',master_user='slave_account',master_password='123456',master_log_file='mysql-bin.000009',master_log_pos=196;  
  3.   
  4. # 開啓同步功能  
  5. mysql>start slave;  

三、檢查從數據庫狀態:

 

[plain]  view plain  copy
 
  1. mysql> show slave status\G;  
  2. *************************** 1. row ***************************  
  3.                Slave_IO_State: Waiting for master to send event  
  4.                   Master_Host: 192.168.1.2  
  5.                   Master_User: slave_account  
  6.                   Master_Port: 3306  
  7.                 Connect_Retry: 60  
  8.               Master_Log_File: mysql-bin.000009  
  9.           Read_Master_Log_Pos: 196  
  10.                Relay_Log_File: vicky-relay-bin.000002  
  11.                 Relay_Log_Pos: 253  
  12.         Relay_Master_Log_File: mysql-bin.000009  
  13.              Slave_IO_Running: Yes  
  14.             Slave_SQL_Running: Yes  
  15.               Replicate_Do_DB:  
  16.           Replicate_Ignore_DB:  
  17.           ...  

注:Slave_IO_Running及Slave_SQL_Running進程必須正常運行,即YES狀態,不然說明同步失敗。

到這裏,主從數據庫設置工做已經完成,本身能夠新建數據庫和表,插入和修改數據,測試一下是否成功

4、其餘可能用到的相關參數

一、master端:

[plain]  view plain  copy
 
  1. # 不一樣步哪些數據庫  
  2. binlog-ignore-db = mysql  
  3. binlog-ignore-db = test  
  4. binlog-ignore-db = information_schema  
  5.   
  6. # 只同步哪些數據庫,除此以外,其餘不一樣步  
  7. binlog-do-db = game  
  8.   
  9. # 日誌保留時間  
  10. expire_logs_days = 10  
  11.   
  12. # 控制binlog的寫入頻率。每執行多少次事務寫入一次  
  13. # 這個參數性能消耗很大,但可減少MySQL崩潰形成的損失  
  14. sync_binlog = 5  
  15.   
  16. # 日誌格式,建議mixed  
  17. # statement 保存SQL語句  
  18. # row 保存影響記錄數據  
  19. # mixed 前面兩種的結合  
  20. binlog_format = mixed  

二、slave端:

[plain]  view plain  copy
 
  1. # 中止主從同步  
  2. mysql> stop slave;  
  3.   
  4. # 鏈接斷開時,從新鏈接超時時間  
  5. mysql> change master to master_connect_retry=50;  
  6.   
  7. # 開啓主從同步  
  8. mysql> start slave;  

以上鍊接超時設置,相似方式可用於設置主數據庫ip,同步賬號密碼,同步位置

相關文章
相關標籤/搜索