MySQL 5.7 同步復(fù)制可以使多個(gè) MySQL 數(shù)據(jù)庫(kù)服務(wù)器之間的數(shù)據(jù)保持同步。當(dāng)其中一個(gè)服務(wù)器上的數(shù)據(jù)發(fā)生更改,這些更改將被復(fù)制到其他數(shù)據(jù)庫(kù)服務(wù)器,以保持它們的內(nèi)容相同。
在 MySQL 5.7 中實(shí)現(xiàn)同步復(fù)制需要通過(guò)配置主從復(fù)制關(guān)系。主服務(wù)器(也稱(chēng)為“主庫(kù)”)上的數(shù)據(jù)將被復(fù)制到其它從服務(wù)器(或“從庫(kù)”)上。從服務(wù)器可以有多個(gè),但一般只有一個(gè)主服務(wù)器。
// 配置主服務(wù)器(192.168.1.100) server-id = 1 log_bin = /var/log/mysql/mysql-bin.log log_bin_index = /var/log/mysql/mysql-bin.index binlog_do_db = testdb // 配置從服務(wù)器(192.168.1.101) server-id = 2 log_bin = /var/log/mysql/mysql-bin.log log_bin_index = /var/log/mysql/mysql-bin.index relay_log = /var/log/mysql/mysql-relay-bin.log relay_log_index = /var/log/mysql/mysql-relay-bin.index binlog_do_db = testdb master-host = 192.168.1.100 master-user = replication master-password = password
以上配置示例中,server-id
參數(shù)設(shè)置為不同的值,以便 MySQL 服務(wù)器能夠確定它們的身份。主服務(wù)器上的主要數(shù)據(jù)將被復(fù)制到從服務(wù)器上的binlog_do_db
參數(shù)指定的數(shù)據(jù)庫(kù)中。
從服務(wù)器上需要設(shè)置master-host
,master-user
和master-password
參數(shù),以便連接到主服務(wù)器并獲得要復(fù)制的數(shù)據(jù)。從服務(wù)器的relay_log
和relay_log_index
參數(shù)是它們將接收到的日志文件。
配置完成后,主服務(wù)器上的數(shù)據(jù)更改將自動(dòng)復(fù)制到從服務(wù)器上。在從服務(wù)器上使用以下命令檢查復(fù)制狀態(tài):
SHOW SLAVE STATUS\G
檢查Slave_IO_Running
和Slave_SQL_Running
參數(shù),以確保它們都設(shè)置為Yes
。
除了 MySQL 5.7 單個(gè)實(shí)例之間的同步復(fù)制外,還可以使用 MySQL Group Replication 使多個(gè) MySQL 實(shí)例之間進(jìn)行復(fù)制和同步。這是一個(gè)高可用性和可擴(kuò)展性的解決方案,可以在處理大量數(shù)據(jù)時(shí)自動(dòng)協(xié)調(diào)不同實(shí)例之間的復(fù)制。