MySQL 5.1 的主從復制是一個非常流行的方案,可用于實現(xiàn)數(shù)據的異地備份以及讀寫分離的需求。在這個方案中,主節(jié)點負責寫入數(shù)據,從節(jié)點則負責將主節(jié)點寫入的數(shù)據同步到自己的本地數(shù)據庫中。
要實現(xiàn)主從復制,需要在主節(jié)點上進行配置。首先,需要為主節(jié)點生成一個用于從節(jié)點連接的賬號和密碼,并在主節(jié)點的配置文件中添加以下幾行:
# 主節(jié)點配置文件中的配置項 server-id=1 # 主節(jié)點的唯一標識符 log-bin=mysql-bin # 開啟二進制日志文件 binlog-ignore-db=mysql # 不記錄mysql數(shù)據庫中的操作 binlog-do-db=my_database # 記錄my_database數(shù)據庫中的操作
以上配置項中,server-id
的值必須唯一,而log-bin
則是開啟二進制日志文件的命令,將所有的操作記錄到二進制日志中。接下來,我們需要為從節(jié)點指定一個要同步的數(shù)據庫,這里我們指定為my_database
,并忽略不需要同步的數(shù)據庫mysql
。
接下來,在從節(jié)點上進行配置。首先,需要在從節(jié)點上創(chuàng)建一個用于連接主節(jié)點的賬號和密碼,然后在從節(jié)點的配置文件中添加以下幾行:
# 從節(jié)點配置文件中的配置項 server-id=2 # 從節(jié)點的唯一標識符 relay-log=mysql-relay-bin # 開啟中繼日志文件 log-slave-updates=true # 將主節(jié)點的數(shù)據更新到本地數(shù)據庫
以上配置項中,server-id
的值必須唯一,而relay-log
則是開啟中繼日志文件的命令,用于記錄主節(jié)點的操作。接下來,我們需要將從節(jié)點連接到主節(jié)點,具體命令如下:
CHANGE MASTER TO MASTER_HOST='192.168.0.1', # 主節(jié)點的IP地址 MASTER_USER='slave_user', # 用于連接主節(jié)點的賬號 MASTER_PASSWORD='slave_password', # 用于連接主節(jié)點的密碼 MASTER_PORT=3306, # 主節(jié)點的端口號 MASTER_LOG_FILE='mysql-bin.000001', # 主節(jié)點的二進制日志文件名稱 MASTER_LOG_POS=107; # 從節(jié)點當前同步的位置
以上命令中,MASTER_LOG_FILE
和MASTER_LOG_POS
用于指定從節(jié)點同步的起始位置,需要根據實際情況進行修改。最后,我們需要啟動從節(jié)點的同步進程,命令如下:
START SLAVE;
以上命令將啟動從節(jié)點的同步進程,將主節(jié)點的數(shù)據同步到本地數(shù)據庫中。當主節(jié)點寫入新數(shù)據時,從節(jié)點會自動同步這些數(shù)據,保證數(shù)據的一致性。