MySQL 副本(Replication)是指在一個 MySQL 主數(shù)據(jù)庫上的操作數(shù)據(jù)集合能自動地被拷貝到一臺或多臺從數(shù)據(jù)庫上。這些從數(shù)據(jù)庫也就是所謂的副本。副本是通過將主數(shù)據(jù)庫上的更改記錄并在相應的從數(shù)據(jù)庫上回放這些更改來實現(xiàn)的。
使用副本有以下幾個好處: 1. 數(shù)據(jù)備份和恢復:將數(shù)據(jù)從主數(shù)據(jù)庫復制到從數(shù)據(jù)庫可以實現(xiàn)備份,并且可以快速恢復數(shù)據(jù)以避免數(shù)據(jù)的丟失。 2. 負載均衡:在主數(shù)據(jù)庫中訪問數(shù)據(jù)可以很容易地分配到從數(shù)據(jù)庫,以避免流量過多而導致的訪問延遲。 3. 可擴展性:通過創(chuàng)建多個從數(shù)據(jù)庫可以輕松擴展存儲容量,提高性能并增加服務可靠性。 4. 高可用性:如果主數(shù)據(jù)庫崩潰,副本可以接管并繼續(xù)提供服務,以避免中斷服務和數(shù)據(jù)的損失。
MySQL 副本配置非常簡單。以下是一個簡單的示例:
# 在my.cnf中配置主數(shù)據(jù)庫 [mysqld] log-bin=mysql-bin # 開啟二進制日志記錄,以便應用于主-從同步 server-id=1 #設置服務器唯一標識 # 在my.cnf中配置從數(shù)據(jù)庫 [mysqld] server-id=2 #設置服務器唯一標識 #啟動副本 CHANGE MASTER TO MASTER_HOST='192.168.1.100', MASTER_USER='replication', MASTER_PASSWORD='mypassword', MASTER_LOG_FILE='mysql-bin.000001', MASTER_LOG_POS=107; # 檢查副本狀態(tài) SHOW SLAVE STATUS \G
在上述代碼中,我們打開了主數(shù)據(jù)庫的二進制日志記錄并為其分配了一個唯一的服務器ID。然后,在每個從數(shù)據(jù)庫上我們配置了唯一的服務器ID。最后,啟動一個副本并配置主服務器和登錄憑據(jù)。我們之后驗證了副本狀態(tài)。
總之,MySQL 副本是一種可靠的工具,可以輕松地在主數(shù)據(jù)庫和從數(shù)據(jù)庫之間復制數(shù)據(jù)。借助副本,可以實現(xiàn)數(shù)據(jù)備份和恢復、負載均衡、可擴展性和高可用性等。