mysql 主備搭建


為什么要復制數據庫?

 

簡單來說有以下幾個用處:

1. 讀寫分離

通過MySQL復制可以實現讀寫分離,將讀操作分布到多個不同的服務器上,減輕服務器的壓力。

2. 備份

從庫可以作為數據的異地實時備份。

3. 故障切換

當主庫遇到故障,系統可以切換到從庫,實現故障切換。

4. 升級測試

從庫可作為測試服務器的數據庫。

 

復制數據的步驟:

  1. 在主庫上把數據更改記錄到二進制日志(Binary Log)中。
  2. 備庫將主庫上的日志復制到自己的中繼日志(Relay Log)中。
  3. 備庫讀取中繼日志中的事件,將其在備庫上重新執行一遍。

 具體操作步驟如下:

  1. 主備兩台服務器安裝相同版本的數據庫,數據庫的初始數據保持一致。
  2. (主庫)配置同步賬號
    1.    創建數據庫復制用戶:mysql>CREATE USER 'repl'@'172.16.127.83' IDENTIFIED BY '123456';
    2.    授權:mysql>grant replication slave on *.* to 'repl'@'172.16.127.83' ;

  3.(主庫)修改/etc/my.cnf文件,注意確保:server-id 唯一

    1.  server-id=1
    2.  log-bin=mysql-bin
    3.  lower_case_table_names=1(數據表不區分大小寫)

  4.(主庫)重啟master端

      1.   service mysqld restart

  5.(主庫)查詢主庫上當前的二進制日志名和偏移量值,記錄下file跟position的值,待會從庫要用

      1.   mysql>show master status \G

  6.(從庫)修改/etc/my.cnf文件,注意確保:server-id 唯一

    1.  server-id=2
    2.  lower_case_table_names=1(數據表不區分大小寫)

  7.(從庫)重啟slave端

      1.  service mysqld restart

  8.(從庫)對從數據庫服務器做相應設置,指定復制使用的用戶,主數據庫服務器的IP、端口以及開始執行復制的日志文件和位置等
      1.  mysql>CHANGE MASTER TO MASTER_HOST='172.16.127.49',MASTER_USER='repl',MASTER_PASSWORD='123456',MASTER_LOG_FILE='mysql-bin.000013',MASTER_LOG_POS=156;

  9. (從庫)啟動slave線程

      1.  mysql>start slave;

  10.  主庫跟從庫分別檢查狀態  

    1. 檢查master的:mysql>show processlist\G      結果:看到上面的Command: Binlog Dump說明配置成功!

    2.檢查slave的:mysql>show slave status \G       結果:提示:Slave_IO_Running和Slave_SQL_Running兩個值為YES基本上成功了


免責聲明!

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



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